Qt C++ 最小化和最大化窗口

10

我使用QWidget类创建主窗口,并将窗口标志设置为Qt :: CustomizeWindowHint(以禁用标题栏)。但后来我发现问题-当我在Windows任务栏上单击我的程序按钮时,程序无法最小化和最大化。我该如何解决这个问题?我使用的是Windows 7操作系统。对我的糟糕英语表示抱歉。

2个回答

16

这是Qt::CustomizeWindowHint的特点。当使用此窗口标志时,你几乎无法控制窗口。你可以尝试在窗口中添加两个按钮,并将它们连接到showMaximized()showMinimized(),通过点击按钮来最大化或最小化窗口。


谢谢您的回答。我在我的程序中创建了按钮(最小化和最大化),一切顺利。但我仍然无法通过单击任务栏按钮来最小化程序窗口。我可以删除窗口的标题栏,但不放弃最小化功能吗? - Outsider
你使用的窗口标志只是禁用了鼠标事件,这意味着如果你点击窗口,Windows 只会让它“穿过”而不是“击中”窗口。如果你想尝试一下,我认为你需要使用 Qt::FramelessWindowHint 并重新实现自己的鼠标事件函数。这篇文章可能会对你有帮助:[链接]http://blog.csdn.net/yiyaaixuexi/article/details/6362865 @Ramix - user957121

6

虽然这个答案是一段时间前的,但我现在也面临同样的挑战,并找到了解决方案。也许对某些人有帮助。如之前所建议的,一个人应该指定Qt :: FramelessWindowHint而不是Qt :: CustomizeWindowHint。这也隐藏了窗口的标题和边框。为了仍然具有最小化/最大化功能,我还额外指定了Qt::WindowSystemMenuHintQt::WindowMinimizeButtonHintQt::WindowMaximizeButtonHint。就是这样!


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