隐藏QMdiArea的标题栏

时间:2013-12-26 05:49:25

标签: qt qt5 qmdiarea

MainWindow可以轻松隐藏标题栏的使用:

setWindowFlags(Qt::CustomizeWindowHint);

但是在使用QMdiArea时,例如:

ui->mdiArea->setWindowFlags(Qt::CustomizeWindowHint);
ui->mdiArea->addSubWindow(child);
child->showMaximized();

事情无法奏效。我也试试这个:

child->setWindowFlags(Qt::CustomizeWindowHint);

和此:

setWindowFlags(Qt::WindowTitleHint);

它仍显示enter image description here

那我该怎么办?

BTW:如果无法做到这一点,我可以禁用左侧的3个按钮或超载这些按钮事件。

2 个答案:

答案 0 :(得分:1)

这对我有用:

child->setWindowFlags(Qt::FramelessWindowHint);

以下是创建QLineEdit子窗口的示例。子窗口没有标题栏:

void MainWindow::on_pushButtonAddSubWindow_clicked(){
  QLineEdit *edit = new QLineEdit(QString("Test"), this);
  QMdiSubWindow *sub = ui->mdiArea->addSubWindow(edit);
  sub->setWindowFlags(Qt::FramelessWindowHint);
  edit->show();
}

答案 1 :(得分:1)

正如他所描述的那样,@ Klathzazt解决方案对我有用。你也可以用

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).
相关问题