QT 子窗體 最大化 界面顯示不對


QT  子窗體 最大化 復原 遇到的問題

  項目中有個需求,主窗體中嵌套子窗體,需要將子窗體最大化顯示和復原。

      查了很多資料,基本上都是提到:QT中窗口部件QWidget成員函數showFullScreen();是用於將窗口部件全屏顯示,但是他只對窗口模式的部件有用。子窗口的特征是 Qt::SubWindow,不是獨立的窗口。因此對其調用showFullScreen()無效。通過對對子窗口調 用:setWindowFlags(Qt::Dialog);或setWindowFlags(Qt::Window);將其設為窗口模式后,即可調用 showFullScreen();進行全屏顯示了。

        如果要還原為普通窗口,調用setWindowFlags(Qt::subwindow)將子窗口設置為非頂級窗口,再調用showNormal()還原子窗口顯示。

  https://www.cnblogs.com/dyllove98/archive/2013/07/15/3191909.html

        

  m_Win->setWindowFlags(Qt::Window);
  m_Win->showFullScreen();

      問題: 該方法確實可行,可以最大化,但是遇到一個問題,最大化后的界面部分操作和顯示不正確,例如有些線無法移動,button點擊沒有按下的效果。

    解決辦法:設置windowstate為最大化

m_Win->setWindowFlags(Qt::Window);
m_Win->showFullScreen();
m_Win->setWindowState(Qt::WindowMaximized);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM