@TAnonim

Почему не меняется заголовок окна Qt?

В общем я хочу сделать, чтобы по нажатию ctrl + пробел заголовок окна менялся.
Вот код:
int main(int argc, char **argv){
    QApplication app(argc, argv);
    QWidget wgt;
    QAction *act = new QAction("Действие!",0);
    act->setShortcut(QKeySequence("CTRL+ "));
    wgt.addAction(act);
    wgt.show();
    wgt.resize(300,300);
    QObject::connect(act, SIGNAL(triggered()), &wgt, SLOT(setWindowTitle("sasdfasdf")));
    return app.exec();
}

Но заголовок окна упорно не меняется. При этом, если вместо слота setWindowTitle() поставить любой другой, например showMinimized - приложение успешно сворачивается. И если вызвать метод wgt.setWindowTitle() в теле функции main, то заголовок меняется. Почему же не работает смена названия при ctrl + пробеле?
  • Вопрос задан
  • 403 просмотра
Решения вопроса 1
Zifix
@Zifix Куратор тега Qt
Barbatum
Нельзя передавать параметры в connect. Попробуйте новый синтаксис сигналов и слотов + замыкание:
connect(act, &QAction::triggered, [=]() { 
    wgt.setWindowTitle("sasdfasdf"); 
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы