2012-08-07 18 views
7

如何自定義PyQt4程序的字符串WM_NAMEWM_CLASS,如xprop所示?在PyQt4中自定義WM_NAME和WM_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_test.py運行這個(文件名爲xprop_test.py),並調用Linux的工具xprop要麼爲ListView或者組合框,它顯示

WM_NAME(STRING) = "xprop_test.py" 

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

如何將字符串WM_NAMEWM_CLASS設置爲另一個自定義值(與文件名不同)?

如何爲整個程序設置?我怎樣才能調整它爲每個單獨的GUI元素?

回答

3

WM_NAME的字符串僅僅是標題欄標題,它可以被設置如下:

listView.setWindowTitle('listview') 

,並提供:

WM_NAME(STRING) = "listView" 

WM_CLASS更難影響。默認情況下,它是從argv[0]構建的,並且似乎沒有辦法使用Qt API以編程方式更改此方法。

python xprop_test.py -name FooBar 

給:

WM_CLASS(STRING) = "FooBar", "Xprop_test.py" 
但是,字符串的第一部分可以通過與 -name選擇這樣的運行程序修改
相關問題