Python 在PyQt4中自定义WM_名称和WM_类(如xprop所示)

Python 在PyQt4中自定义WM_名称和WM_类(如xprop所示),python,pyqt4,Python,Pyqt4,如何自定义PyQt4程序的字符串WM\u NAME和WM\u CLASS,如xprop所示 例如,考虑: from PyQt4 import QtGui, QtCore import sys if __name__ == '__main__': app = QtGui.QApplication(sys.argv) app.setStyle("plastique") listView = QtGui.QListView() listView.show

如何自定义
PyQt4
程序的字符串
WM\u NAME
WM\u CLASS
,如
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_())
如果我通过
python xprop\u test.py
运行这个(文件名为
xprop\u test.py
),并为ListView或ComboBox调用linux工具
xprop
,它会显示

WM_NAME(STRING) = "xprop_test.py"

如何将字符串
WM_NAME
WM_CLASS
设置为另一个自定义值(不同于文件名)


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

WM\u NAME字符串只是标题栏标题,可以如下设置:

listView.setWindowTitle('listview')
python xprop_test.py -name FooBar
给予:

WM_NAME(STRING) = "listView"
WM_CLASS(STRING) = "FooBar", "Xprop_test.py"
WM_类
更难影响。默认情况下,它是从
argv[0]
构建的,似乎没有一种方法可以使用qtapi以编程方式更改它。但是,可以通过使用
-name
选项运行程序来更改字符串的第一部分,如下所示:

listView.setWindowTitle('listview')
python xprop_test.py -name FooBar
给予:

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