我在Qt中有一个应用程序,每当我想最小化我使用的应用程序时
this->showMinimized();
但是,这一行在子窗口小部件中不起作用(除了子窗口的父级'可用的子构建器之外)。
除了设置信号和插槽外,有没有办法最小化子窗口小部件的应用程序?我试图避开信号和插槽,因为我开始有大量的信号和插槽。
提前致谢!
答案 0 :(得分:1)
如果您只有一个窗口,则可以使用此方法:
QMainWindow* win = qobject_cast<QMainWindow*>(QApplication::activeWindow());
win->showMinimized();
但我的信号/插槽可能是一个更好的方法。
答案 1 :(得分:1)
您可以将窗口状态设置为最小化。如果子窗口小部件的父窗口小部件是应用程序主窗口,则应调用子窗口小部件:
this->parentWidget()->setWindowState(Qt::WindowMinimized);
也可以在子窗口小部件的构造函数中保存指向主窗口的指针:
QWidget * myParent;
MyWidget::MyWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::MyWidget)
{
ui->setupUi(this);
this->myParent = parent;
...
}
并在您希望最小化应用程序时调用:
this->myParent->setWindowState(Qt::WindowMinimized);
答案 2 :(得分:0)
如果您不想使用信号和插槽(但在这种情况下可以使用),您可以将要最小化的窗口放在子窗口小部件的构造函数中。