Скрытие строки заголовка QMdiArea
MainWindow может легко скрыть использование строки заголовка:
setWindowFlags(Qt::CustomizeWindowHint);
Но при работе с QMdiArea, например:
ui->mdiArea->setWindowFlags(Qt::CustomizeWindowHint);
ui->mdiArea->addSubWindow(child);
child->showMaximized();
Вещи не могли работать. Я также попробую это:
child->setWindowFlags(Qt::CustomizeWindowHint);
и это:
setWindowFlags(Qt::WindowTitleHint);
Это все еще показывает
Так как я могу это сделать?
Кстати: если не могу сделать это, могу ли я отключить 3 кнопки слева или перегрузить событие этих кнопок.
2 ответа
Это работает для меня:
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();
}
Решение @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).