MainWindow可以使用以下命令轻松隐藏标题栏:
setWindowFlags(Qt::CustomizeWindowHint);但是在处理QMdiArea时,比如:
ui->mdiArea->setWindowFlags(Qt::CustomizeWindowHint);
ui->mdiArea->addSubWindow(child);
child->showMaximized();事情不能正常进行。我也尝试这样做:
child->setWindowFlags(Qt::CustomizeWindowHint);还有这个:
setWindowFlags(Qt::WindowTitleHint);它仍然显示

那么我该怎么做呢?
顺便说一句:如果做不到这一点,我是否可以禁用左侧的3个按钮或重载这些按钮事件。
发布于 2013-12-28 06:26:14
这对我来说很有效:
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();
}发布于 2014-09-04 19:05:45
正如他所描述的,@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).https://stackoverflow.com/questions/20779774
复制相似问题