MainWindow可以轻松隐藏标题栏的使用:
setWindowFlags(Qt::CustomizeWindowHint);
但是在使用QMdiArea时,例如:
ui->mdiArea->setWindowFlags(Qt::CustomizeWindowHint);
ui->mdiArea->addSubWindow(child);
child->showMaximized();
事情无法奏效。我也试试这个:
child->setWindowFlags(Qt::CustomizeWindowHint);
和此:
setWindowFlags(Qt::WindowTitleHint);
它仍显示
那我该怎么办?
BTW:如果无法做到这一点,我可以禁用左侧的3个按钮或超载这些按钮事件。
答案 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)
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).