Что определяет заголовок по умолчанию для QMessageBox?

Я хочу изменить заголовок по умолчанию QMessageBox на что-то другое, чтобы мне не приходилось вызывать setWindowTitle для каждого отдельного окна сообщения.

Как выбирается заголовок окна по умолчанию?


person Pieter    schedule 18.04.2011    source источник
comment
Возможно, вам лучше создать подкласс QMessageBox, который устанавливает заголовок окна так, как вы хотите.   -  person cgmb    schedule 18.04.2011


Ответы (4)


Вам не нужно вызывать метод setWindowTitle, в то время как вы можете указать заголовок при экземпляре Объект QMessageBox.

person SIFE    schedule 18.04.2011
comment
Я знаю, что могу передать предпочтительный заголовок в конструкторе, но он везде будет одинаковым, поэтому я подумал, что мне лучше изменить заголовок окна по умолчанию, чтобы избавить меня от большого количества копий/вставок. Не могли бы вы предложить использовать const std::string в качестве заголовка окна для всех диалогов? Это исключает работу по копированию/вставке, но по-прежнему требует от меня косвенного указания заголовка окна в конструкторе. - person Pieter; 18.04.2011
comment
Создание функции обычно является хорошим способом устранения повторяющегося кода. - person ; 18.04.2011
comment
@Pieter Во-первых, я не профессионал C ++, поэтому простите меня, все, что я могу предложить, это создать функцию, как сказал мистер Року, и вызывать ее, когда она вам нужна. - person SIFE; 18.04.2011

Лучший способ сделать это — создать подкласс QMessageBox, например:

class MyMessageBox : public QMessageBox
{
   MyMessageBox()  //<-- default constructor 
   {
    setWindowTitle("Default title goes here"); //QMessageBox function
   }
};

Используйте MyMessageBox везде в коде.

person PnotNP    schedule 12.05.2017

Вместо этого вы можете добавить TARGET в файл .pro. например добавьте эту строку в файл .pro:

ЦЕЛЬ = Мое приложение

Таким образом, «MyApp» будет применяться как в качестве имени исполняемого файла, так и в качестве значения по умолчанию для windowTitle всех QMessageBox во всем проекте.

person Lilla Eli    schedule 20.12.2012
comment
Вы также можете указать имя приложения с кодировкой: QApplication::setApplicationName ( QCoreApplication::setApplicationName ) или QApplication::setApplicationDisplayName ( QGuiApplication::setApplicationDisplayName ). - person li ki; 20.04.2021

В Windows, разрабатываемой с помощью VC2008, название берется из проекта. Измените название проекта, и он изменит название.

person Joe Kemp    schedule 28.06.2011
comment
Это вопрос относительно Qt. - person chwi; 22.09.2016