在pyside中设置应用程序名称

时间:2014-12-12 22:58:44

标签: python qt qt4 pyside

我在Windows 8和Qt 5下使用Qt Creator / Designer创建了一个应用程序

它从以下开始

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        #MainWindow.setApplicationName("Facturo-Pro") # this doesn't work
        MainWindow.setWindowIcon(QtGui.QIcon('icons/app.png'))
        MainWindow.setObjectName("MainWindow")
        MainWindow.setMinimumSize(QtCore.QSize(800, 600))
        MainWindow.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))

我想设置应该在窗口标题和任务栏上显示的应用程序名称

我尝试使用

    QtCore.QCoreApplication.setOrganizationName("Moose Soft")
    QtCore.QCoreApplication.setApplicationName("Facturo-Pro")

QtCore.QSettings("my app","my org")

但它没有用,在任务栏和窗口标题中,我看到" python"

我不想使用setWindowTitle(),因为我想使用

    MainWindow.setWindowFilePath(self.currentFile)

所以我稍后会更新FilePath,当编辑它时," *"将显示在窗口标题上!

1 个答案:

答案 0 :(得分:3)

使用Qt5,您可以设置applicationDisplayName,它与主标题栏文本分开。

要在标题栏中显示modification state,您可以这样做:

    QtWidget.qApp.setApplicationDisplayName('Test')
    ...
    window.setWindowFilePath('/path/to/file.txt')
    window.setWindowModified(True)

并且标题栏看起来像这样: file.txt * - 测试

或者,在设置window title时,您可以通过使用特殊占位符来更多地控制标题栏文本:

    window.setWindowTitle('/path/to/file.txt[*]')
    window.setWindowModified(True)

并且标题栏看起来像这样: /path/to/file.txt* - 测试

修改

如果你正在使用Qt4,则不会有applicationDisplayName,所以你可以试试这个,而不是:

    QtGui.qApp.setApplicationName('Test')
    ...
    window.setWindowTitle(
        '/path/to/file.txt[*] - %s' % QtGui.qApp.applicationName())
    window.setWindowModified(True)

并且标题栏应如下所示: /path/to/file.txt* - 测试