QWidget::showMinimized()无效。

3
在Ubuntu 13.04上,如果使用QWidget::showMinimized()最小化一个窗口,在通过点击应用程序图标来恢复窗口后,再次调用QWidget::showMinimized()无法生效。建议您采用其他方式来最小化窗口。
connect(minimumBtn,SIGNAL(clicked()),this,SLOT(minimumWin()));
minimumWin(){
   showMinimized();
}

如果在调用minimumWin()之前已经调用了showMinimized(),即使窗口已经显示,它也不再起作用。

3
我已经读了这个问题3或4次,但完全没有意义。如果您包含一些可以重现问题的示例代码和一两个屏幕截图可能会有所帮助。请提供更多细节以便更好地理解问题。 - Cody Gray
使用您问题下方的[编辑]链接。评论不支持多行或代码格式。 - Cody Gray
2个回答

3

我能在Linux Mint和Qt 5.1上重现这个问题,很可能是Qt的一个bug。我发现如果你在showMinimized()之后立即调用showNormal(),窗口会最小化,并在从任务栏恢复后,可以再次将窗口最小化。例如:

void MainWindow::on_pushButton_clicked()
{
    showMinimized();
    showNormal();
}

如果这是一个可重现的错误,那么向Qt团队提交错误报告可能是值得的。 - Cody Gray
1
看起来已经有人报告了:https://bugreports.qt-project.org/browse/QTBUG-25727 - user362638

1
I've met this problem, but I didn't solve it completely. 在Ubuntu系统中,您可以在QWidget类的构造函数中使用此函数:
this->setWindowFlags(Qt::Window|Qt::FramelessWindowHint||Qt::WindowMinimizeButtonHint);

如果代码运行时没有窗口框架和最小化按钮,那么使用showMinimized()是有效的(如果有,则与我一起)。

但它仅在Ubuntu系统中有效,在我们公司定制的操作系统中无效(类似于Ubuntu)。我不知道为什么。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接