2013-05-15 5 views
1

Чтобы показать окно сообщения Я использую этот код:Удалить строку заголовка QMessageBox при использовании статического метода QMessageBox :: information()?

int ret = QMessageBox::question(this,"Title","Stupid code",QMessageBox::Yes | QMessageBox::No); 

Все работает, как ожидалось, но сейчас я хочу, чтобы удалить строку заголовка окна сообщения. Как я могу это достичь?

Я не хочу использовать:

QMessageBox msgBox("Title" , "Stupid code", QMessageBox::Question, QMessageBox::Yes | QMessageBox::No, this, Qt::FramelessWindowHint); 
msgBox.exec(); 
+1

Вы пробовали QMessageBox msgBox ("", "Глупый код", QMessageBox :: Question, QMessageBox :: Да | QMessageBox :: Нет, это, Qt :: FramelessWindowHint); – Arun

+0

Я не хочу этого делать (я сказал в p/s). @ _ @ – PhiVH

+1

В чем причина нежелания использовать метод, предложенный @Arun? – TheDarkKnight

ответ

1

Я хотел бы предложить вам создать функцию-оболочку, создавая свой собственный XMessageBox класс с статической функции члена question(), принимая те же аргументы, QMessageBox::question(). В вашей функции обертки создайте объект QMessageBox с аргументами, предоставленными вашей функции, и, кроме того, флаг Qt::FramelessWindowHint, вызовите exec() и передайте возвращаемое значение. Таким образом вам нужно всего лишь найти и заменить все вхождения QMessageBox::questionXMessageBox::question в вашем коде.

Если вы хотите больше гибкости, вы можете сделать свой question() функцией принять дополнительный аргумент типа Qt::WindowFlags и передать это на конструктор QMessageBox.

Единственная альтернатива, которая позволит вам делать то, что вы хотите, без изменения какого-либо кода, - это изменить Qt-код (qmessagebox.cpp) и перекомпилировать Qt.

 Смежные вопросы

  • Нет связанных вопросов^_^