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

标签 python pyqt4

如何自定义 xprop 所示的 PyQt4 程序的字符串 WM_NAMEWM_CLASS

例如考虑:

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 或者对于 ComboBox,它显示

WM_NAME(STRING) = "xprop_test.py"

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

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

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

最佳答案

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"

关于python - PyQt4中自定义WM_NAME和WM_CLASS(如xprop所示),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11846029/

相关文章:

qt - QGraphicsView 双击事件和 ScrollHandDrag 模式项问题

python - 如何在两个 python 应用程序之间交换数据?

python - 动态 QTableWidget 上的跨列单元格验证

python - 如果通过前端注册表单注册,Django Authenticate 将不返回任何内容

python - 使用实时 Python 数据更新 Excel 电子表格

python - pytz 和 python-dateutil 有什么区别?

python-2.7 - Python & Ubuntu 14.04\ 删除手动安装的python版本

python - PyQt4 - 在 QListView 中的项目上按下输入键

python - 用于不失真图像的 TensorFlow 函数

python - 从函数返回 SQL 结果作为数组