如何永久删除主窗口标题栏?
Posted
技术标签:
【中文标题】如何永久删除主窗口标题栏?【英文标题】:How to remove mainwindow titlebar permanently? 【发布时间】:2016-02-09 10:36:30 【问题描述】:当我将 mainwindow 设置为 fullscreen() 时,标题栏消失,这就是我想要的。但是当打开一个对话框时,主窗口标题栏再次出现,这在我的情况下是不可取的。我尝试设置几个 Qt::windowflags 但它们不起作用。任何帮助将不胜感激。
【问题讨论】:
如果一个窗口是全屏的,则没有其他窗口可以覆盖它。由于对话框强行移至顶部,原始窗口将失去其全屏状态。 【参考方案1】:这里快速回答,你必须这样做
int main(int argc, char *argv[])
QApplication a(argc, argv);
MyMainWindow window;
window.setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
window.show();
PS:我从网上了解到的是,结果有点模棱两可。让我们知道结果
【讨论】:
对我不起作用。它只是缩小了我的应用程序窗口。没有别的了。 可以用 QDialog 做些什么而不是弄乱主窗口吗?因为它在没有对话框的情况下工作正常。 我想通过这个弹出一个数字小键盘。有没有其他解决方法? 您能否在问题中包含当前状态的图像?理解会很有帮助。另外,您是否像这个答案一样一开始就setWindowsFlags()
?还是你后来设置的?
我像上面一样在 main.cpp 中设置了标志。现在我通过向 dialog.setWindowFlags(Qt::WindowStaysOnTopHint|Qt::X11BypassWindowManagerHint |Qt::FramelessWindowHint);【参考方案2】:
要将对话框移动到中心: 1.调用小部件应将中心坐标传递给对话窗口。 我通过调用对话函数来传递坐标来完成它。 在 widget.cpp 中:
dialog->centre(this->width()/2,this->height()/2);
2.在 dialog.cpp 中:
`centre(int x,int y)
width =x; //store in some global variable
height=y;
`
3.在dialog.cpp的show事件中:
this->move(width,height);
完成。它会将对话框放置在小部件的中心。
【讨论】:
以上是关于如何永久删除主窗口标题栏?的主要内容,如果未能解决你的问题,请参考以下文章