Russian Qt Forum

Qt => Вопросы новичков => Тема начата: TeapoT от Июль 19, 2013, 17:08



Название: конструктор QAction и наследник QWidget
Отправлено: TeapoT от Июль 19, 2013, 17:08
Заранее прошу прощения за нубский вопрос. Чувствую что решение простое, но сам не додумываюсь - уж извините новичка.

Ситуация: есть класс - наследник QWidget:

class WaitressPanelWidget:public QWidget;


Хочу создать в нём меню QToolBar и повесить на него QAction. Для этого в конструкторе  WaitressPanelWidget пишу:     

    QAction * newAct = new QAction(tr("&New"), tr("Ctrl+N"), this);
      newAct->setIconSet(QPixmap::fromMimeSource("new.png"));
      newAct->setStatusTip(tr("Create a new spreadsheet file"));
      connect(newAct, SIGNAL(activated()), this, SLOT(newFile()));

QToolBar * fileToolBar = new QToolBar("File", this);
      newAct->addTo(fileToolBar);

Всплывает ошибка: no matching function for call to 'QAction::QAction(QString, QString, WaitressPanelWidget* const). Подскажите кто-нибудь, как бороться с такими ситуациями?


Название: Re: конструктор QAction и наследник QWidget
Отправлено: gil9red от Июль 19, 2013, 17:40
Вот его конструкторы:
Код:
QAction ( QObject * parent )
QAction ( const QString & text, QObject * parent )
QAction ( const QIcon & icon, const QString & text, QObject * parent )

Замените
Код:
QAction * newAct = new QAction(tr("&New"), tr("Ctrl+N"), this);
на:
Код:
QAction * newAct = new QAction(tr("&New"), this);
newAct->setShortcut( QKeySequence("Ctrl+N") );


Название: Re: конструктор QAction и наследник QWidget
Отправлено: TeapoT от Июль 22, 2013, 13:44
Спасибо, помогло!


Название: Re: конструктор QAction и наследник QWidget
Отправлено: gil9red от Июль 22, 2013, 16:20
Еще бы не помогло :D