2011-11-25 256 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。而已!