QT 子窗体 最大化 界面显示不对
QT ?子窗體 最大化 復(fù)原 遇到的問(wèn)題
項(xiàng)目中有個(gè)需求,主窗體中嵌套子窗體,需要將子窗體最大化顯示和復(fù)原。
? ? ? 查了很多資料,基本上都是提到:QT中窗口部件QWidget成員函數(shù)showFullScreen();是用于將窗口部件全屏顯示,但是他只對(duì)窗口模式的部件有用。子窗口的特征是 Qt::SubWindow,不是獨(dú)立的窗口。因此對(duì)其調(diào)用showFullScreen()無(wú)效。通過(guò)對(duì)對(duì)子窗口調(diào) 用:setWindowFlags(Qt::Dialog);或setWindowFlags(Qt::Window);將其設(shè)為窗口模式后,即可調(diào)用 showFullScreen();進(jìn)行全屏顯示了。
? ? ? ? 如果要還原為普通窗口,調(diào)用setWindowFlags(Qt::subwindow)將子窗口設(shè)置為非頂級(jí)窗口,再調(diào)用showNormal()還原子窗口顯示。
https://www.cnblogs.com/dyllove98/archive/2013/07/15/3191909.html
? ? ? ??
m_Win->setWindowFlags(Qt::Window);
m_Win->showFullScreen();
? ? ??問(wèn)題: 該方法確實(shí)可行,可以最大化,但是遇到一個(gè)問(wèn)題,最大化后的界面部分操作和顯示不正確,例如有些線(xiàn)無(wú)法移動(dòng),button點(diǎn)擊沒(méi)有按下的效果。
? ? 解決辦法:設(shè)置windowstate為最大化
m_Win->setWindowFlags(Qt::Window);
m_Win->showFullScreen();
m_Win->setWindowState(Qt::WindowMaximized);
?
轉(zhuǎn)載于:https://www.cnblogs.com/0523jy/p/9667657.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的QT 子窗体 最大化 界面显示不对的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 农行信用卡消费备用金审核查征信吗?多久到
- 下一篇: Python3 matplotlib的绘