Название приложения Qt

Я разрабатываю приложение Qt

Мне удалось установить заголовок главного окна с помощью метода

setWindowTitle("my title");

однако это изменяет имя в верхней панели приложения, это не влияет на заголовок, отображаемый в верхней панели оболочки gnome (ubuntu), или заголовок, отображаемый при нажатии alt + tab.

Как это поменять?

Я пробовал использовать переменную DEPLOYMENT.display_name в моем файле .pro


person Amxx    schedule 08.11.2012    source источник


Ответы (4)


Попробуйте использовать QCoreApplication :: setApplicationName ("ваш заголовок") в вашем основном коде.

person Jokahero    schedule 08.11.2012
comment
Эта ошибка касалась Gnome 3 и Qt 4.7.4, в настоящее время она закрыта и теперь находится в отчетах об ошибках . qt.io/browse/QTBUG-22274 - person handle; 14.07.2016

После правильной программной настройки, чтобы получить имя приложения для использования в качестве заголовка, просто используйте статический метод получения _ 1_ или QtGUIApplication::applicationDisplayName() (начиная с V5 ).

Начиная с версии V5, они будут возвращаться к имени исполняемого файла, если свойство не установлено.

Пример использования:

QCoreApplication::setApplicationName( QString("My Application") );
setWindowTitle( QCoreApplication::applicationName() );

В качестве альтернативы установите заголовок окна с помощью Qt Designer и получите доступ к нему с помощью windowTitle().

person handle    schedule 14.07.2016

Название приложения отличается от заголовка окна. Диспетчер окон обычно рисует заголовок окна в строке заголовка (главного) окна, в то время как имя приложения используется (например, Gnome ) для представления самого приложения.

Qt, кажется, передает первый элемент первого аргумента своей подписи конструктора нижележащему оконному менеджеру:

app = QApplication(('My Application Name',))

QApplication.applicationName, похоже, в основном используется для внутренние цели приложения.


Тогда более полная (базовая) настройка будет выглядеть примерно так (в Python аналогично будет C ++), а не вызов конструктора суперкласса MyQApplication:

from PySide import QtCore, QtGui
import sys


class MyQApplication(QtGui.QApplication):
    def __init__(self, app_name):
        super(MyQApplication, self).__init__((app_name,))

        self.setApplicationName(app_name)

        self.main_window = QtGui.QMainWindow()
        self.main_window.setWindowTitle("My Application's Main Window")
        self.main_window.show()


if __name__ == '__main__':
    app = MyQApplication("My Application's Name")
    sys.exit(app.exec_())

person bossi    schedule 02.06.2019

Вы можете перейти в Дизайнер в Qt Creator и изменить заголовок объекта в настройках, которые находятся справа.

person Community    schedule 28.08.2015