LINUX.ORG.RU

не пашут слоты


0

0

не работае следующий код:

////////////////////////////////////////////////////////////////////////////////
/
class SplMainWidget : public QWidget
{
    private:

    public slots:
	void slotShowFullScreen();

    public:
	SplMainWidget(QWidget *parent = 0, const char *name = 0);

    protected:
	void resizeEvent(QResizeEvent *event);
};

SplMainWidget::SplMainWidget(QWidget *parent, const char *name) : QWidget (parent, name)
{
    QMenuBar *menubar = new QMenuBar(menuwidget);
    QPopupMenu *pop_view = new QPopupMenu (menubar);
    menubar->insertItem("&View", pop_view);
    pop_view->insertItem("FullScreen", this, SLOT(slotShowFullScreen()), ALT+Key_F12);
}

void SplMainWidget::slotShowFullScreen()
{
    if(isFullScreen())
	showNormal();
    else
	showFullScreen();
}

////////////////////////////////////////////////////////////////////////////////
/

запускаем:

# ./newapp
QObject::connect: No such slot QWidget::slotShowFullScreen()
QObject::connect:  (sender name:   'unnamed')
QObject::connect:  (receiver name: 'unnamed')

чего это так ?
как ещё можно сделать переключение фулскрин/обычный вид ?
anonymous

"Note the Q_OBJECT. This macro must be included in all classes that contain signals and/or slots.", - руководство QT.

Попробуйте с Q_OBJECT.

Tsahes
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.