tri*_*elt 5 c++ qt qwidget qtgui qmainwindow
嗨,我在Qt中更改窗口标题和中央窗口小部件时遇到问题.有MainWindow:
class MainWindow : public QMainWindow
{
// (...)
QStackedWidget* widgets;
Quiz* widget1, *widget2;
}
Run Code Online (Sandbox Code Playgroud)
并且有一个类测验:
class Quiz : public QWidget
{
public slots:
void myClicked();
}
Run Code Online (Sandbox Code Playgroud)
我想在点击按钮后更改MainWindow标题,该按钮是测验的一个元素(并且它与插槽myClicked连接).
void Quiz::myClicked()
{
static_cast<MainWindow>(parent).myFunction();
}
void MainWindow::myFunction()
{
widget2 = new Quiz(this,2);
widgets->addWidget(widget2);
std::cout<<"current wdgt: " << widgets->currentIndex() << std::endl; // shows: 0
widgets->setCurrentWidget(widget2);
std::cout<<"current wdgt " << widgets->currentIndex() << std::endl; // shows: 1
setWindowTitle("newTitle");
std::cout<<"Title is " << windowTitle().toStdString() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
所以widgets-> currentIndex显示了新窗口小部件的索引,但窗口中没有任何更改.窗口标题也是同样的问题 - 方法windowTitle()返回新标题,但标题栏上的标题是旧的.为什么?如果我在Quiz :: myClicked中更改标题:
parent->setWindowTitle("newTitle");
Run Code Online (Sandbox Code Playgroud)
有用!为什么它有多奇怪?请帮忙.