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

2022-04-28 22:51:18 字數 751 閱讀 5891

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

專案中有個需求,主窗體中巢狀子窗體,需要將子窗體最大化顯示和復原。

查了很多資料,基本上都是提到:

qt中視窗部件qwidget成員函式showfullscreen();是用於將視窗部件全屏顯示,但是他只對視窗模式的部件有用。子視窗的特徵是 qt::subwindow,不是獨立的視窗。因此對其呼叫showfullscreen()無效。通過對對子視窗調 用:setwindowflags(qt::dialog);或setwindowflags(qt::window);將其設為視窗模式後,即可呼叫 showfullscreen();進行全屏顯示了。

如果要還原為普通視窗,呼叫setwindowflags(qt::subwindow)將子視窗設定為非頂級視窗,再呼叫shownormal()還原子視窗顯示。

m_win->setwindowflags(qt::window);

m_win->showfullscreen();

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

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

m_win->setwindowflags(qt::window);

m_win->showfullscreen();

m_win->setwindowstate(qt::windowmaximized);

C mdi子窗體最大化問題

c mdi子窗體最大化 2008 08 15 13 23 有時候我們需要在子窗體顯示的時候就是最大化 也就是填充了整個父窗體 但通常會遇到以下麻煩 如果在 visual studio 2005裡通過屬性工具欄設定了子窗體的 windowstate 為 maximized,然後在執行過程中會發現子窗體...

CDialog窗體最大化

setwindowpos this m hwnd,hwnd topmost,0,0,0,0,swp nomove swp nosize centerwindow hdc hdesktopdc createdc t display null,null,null int xscrn getdevicec...

winForm窗體最大化的設定

1.窗體最大化時 非全屏 不會遮蓋工作列 private void btnformmax click object sender,eventargs e else 此時this.formborderstyle.預設為 sizable 2.窗體最大化時 會全屏 及遮蓋工作列 private void ...