7

如何自定义字符串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)并为 ListView 或 ComboBoxpython xprop_test.py调用 linux 工具,它会显示xprop

WM_NAME(STRING) = "xprop_test.py"

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

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

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

4

1 回答 1

4

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"
于 2012-08-07T17:50:28.757 回答