首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >隐藏QMdiArea的标题栏

隐藏QMdiArea的标题栏
EN

Stack Overflow用户
提问于 2013-12-26 13:49:25
回答 2查看 2.8K关注 0票数 1

MainWindow可以使用以下命令轻松隐藏标题栏:

代码语言:javascript
复制
setWindowFlags(Qt::CustomizeWindowHint);

但是在处理QMdiArea时,比如:

代码语言:javascript
复制
ui->mdiArea->setWindowFlags(Qt::CustomizeWindowHint);
ui->mdiArea->addSubWindow(child);
child->showMaximized();

事情不能正常进行。我也尝试这样做:

代码语言:javascript
复制
child->setWindowFlags(Qt::CustomizeWindowHint);

还有这个:

代码语言:javascript
复制
setWindowFlags(Qt::WindowTitleHint);

它仍然显示

那么我该怎么做呢?

顺便说一句:如果做不到这一点,我是否可以禁用左侧的3个按钮或重载这些按钮事件。

EN

回答 2

Stack Overflow用户

发布于 2013-12-28 06:26:14

这对我来说很有效:

代码语言:javascript
复制
child->setWindowFlags(Qt::FramelessWindowHint);

下面是一个创建作为QLineEdit的子窗口的示例。子窗口没有标题栏:

代码语言:javascript
复制
void MainWindow::on_pushButtonAddSubWindow_clicked(){
  QLineEdit *edit = new QLineEdit(QString("Test"), this);
  QMdiSubWindow *sub = ui->mdiArea->addSubWindow(edit);
  sub->setWindowFlags(Qt::FramelessWindowHint);
  edit->show();
}
票数 2
EN

Stack Overflow用户

发布于 2014-09-04 19:05:45

正如他所描述的,@Klathzazt解决方案对我很有效。您还可以使用

代码语言:javascript
复制
auto w = new QWidget();
auto sub_w = area_.addSubWindow(w, 
             Qt::CustomizeWindowHint | Qt::Tool | Qt::WindowTitleHint);
sub_w->show();`<br>to create windows that have only title bar(no buttons).
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20779774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档