在PyQt4中自定义WM_NAME和WM_CLASS(如xprop所示)

时间:2012-08-07 12:29:50

标签: python pyqt4

我如何自定义WM_NAME程序的字符WM_CLASSPyQt4,如xprop所示?

考虑例如:

from PyQt4 import QtGui, QtCore
import sys

if __name__ == '__main__':

    app = QtGui.QApplication(sys.argv)
    app.setStyle("plastique")


    listView = QtGui.QListView()    
    listView.show()

    combobox = QtGui.QComboBox()
    combobox.show()    

    sys.exit(app.exec_())

如果我通过xprop_test.py运行此文件(该文件名为python xprop_test.py),并为ListView或ComboBox调用linux工具xprop,则显示

WM_NAME(STRING) = "xprop_test.py"

WM_CLASS(STRING) = "xprop_test.py", "Xprop_test.py"

如何将字符串WM_NAMEWM_CLASS设置为另一个自定义值(与文件名不同)?

如何为整个程序设置它?如何为每个GUI元素调整它?

1 个答案:

答案 0 :(得分:3)

WM_NAME字符串只是标题栏标题,可以像这样设置:

listView.setWindowTitle('listview')

,并提供:

WM_NAME(STRING) = "listView"

WM_CLASS更难以影响。默认情况下,它是从argv[0]构造的,并且似乎没有办法使用Qt API以编程方式更改此方法。但是,可以通过使用-name选项运行程序来更改字符串的第一部分,如下所示:

python xprop_test.py -name FooBar

,并提供:

WM_CLASS(STRING) = "FooBar", "Xprop_test.py"