2011-11-25 64 views
8

我通过使用类QWidget和设置窗口标志Qt :: CustomizeWindowHint(禁用标题栏)创建主窗口。但是,比我发现的问题 - 当我点击Windows任务栏上的程序按钮 - 程序不会最小化和最大化。我能做些什么来消除这个问题?我使用Windows 7.对不起4我的英语不好。Qt C++最小化和最大化窗口

回答

12

这是Qt的的特点:: CustomizeWindowHint.When使用这个窗口标志,你很难控制window.What你可以尝试是增加两个按钮,你的窗口,并将它们连接到showMaximized()showMinimized( )。然后,您可以通过单击按钮来最大化或最小化窗口。

+0

感谢您的回答。我在我的程序中创建按钮(最小化和最大化),一切正常。但是我仍然无法通过点击任务栏按钮来最小化程序窗口。我可以从窗口中删除标题栏,但不放弃功能最小化? – Outsider

+0

您使用的窗口标志只是禁用鼠标事件,这意味着如果您将窗口点击,Windows只是让它“通过”而不是“击中”窗口。如果您想尝试一下,我认为您必须使用Qt: :FramelessWindowHint并重新实现您自己的鼠标事件函数。本文可能会对您有所帮助:[链接] http://blog.csdn.net/yiyaaixuexi/article/details/6362865 @Ramix – user957121

3

这个答案不久前,但我现在面临同样的挑战,可以找到解决方案。也许对其他人有帮助。如前所述,应该指定Qt::FramelessWindowHint而不是Qt::CustomizeWindowHint。这也隐藏了窗口的标题和边框。为了仍然具有最小化/最大化特征,我还要指定Qt::WindowSystemMenuHint,Qt::WindowMinimizeButtonHintQt::WindowMaximizeButtonHint。而已!

相关问题