21,464
社区成员
发帖
与我相关
我的任务
分享各位社区Qt开发者,大家好,请教大家一个问题:
Qt原始窗口最大化,最小化按钮不忍直视,于是就使用QMainWindow无边框属性。
this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
这样以来,就自己做最小化,关闭按钮。于是利用QMenuBar角落小部件,来添加最小化,关闭按钮。代码如下:
this->menuBar()->setCornerWidget(m_maxminWin, Qt::TopRightCorner);
运行结果如下:

看似挺完美,其实没有全屏显示,设置全屏:
this->showMaximized();

运行结果,好家伙,全屏显示之后,QMenuBar小部件消失了。
请教下各位,如何解决??先行谢过了!!
这个问题暂时规避了。
具体解决办法就是窗口绘制完成之后,不要显示最大化。这样QMenuBar角落小部件就正常显示出来了。
再利用QTimer::Singleshot(), 设置一个很短时间,比如10ms,出发一个事件,再去this->showMaximized();全屏显示就ok。
那么其实还依然存在,只是适当的规避了。