python - 在 PyQt 中迭代给定 QToolBar 对象上的 QAction 项?

标签 python pyqt4 qaction qtoolbar

使用 Python 和 PyQt4,给定一个具有任意数量的 QToolBar 对象的 GUI,并且每个工具栏包含任意数量的 QAction 对象。

我可以使用以下代码迭代 ui 并找到工具栏:

for name, obj in inspect.getmembers(ui):
    if isinstance(obj, QToolBar):
        print "toolbar =",name

如何迭代每个工具栏对象并找到 QAction 对象。然后我将阅读 QActions 以确定哪些是“选中的”。我没有使用 QActionGroups。

最佳答案

如果工具栏是在 Qt Designer 中创建的,它们将成为主窗口(或任何顶级小部件)的子窗口。

所以你可以简单地做:

for toolbar in mainwindow.findChildren(QToolBar):
    print('toolbar: %s' % toolbar.objectName())
    for action in toolbar.actions():
        if not action.isSeparator():
            print('  action: %s (%s)' % (action.text(), action.isChecked()))

关于python - 在 PyQt 中迭代给定 QToolBar 对象上的 QAction 项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34911660/

相关文章:

python - 奇怪的 tf.Print 错误

python - 如果 URL 与 slug 不匹配,则规范链接和 301 重定向

python - 使用 Python 创建 HUD

c++ - 在QT5中,如何在子菜单项的点击事件上打开新窗口?

python - svgutils.compose() 模块中关于使用tile() 方法排列图形是否存在错误?

python - 有没有办法在不使用两个 for 循环的情况下解决这个问题

python - 为什么我的某些文件在安装使用 setuptools 打包的 python 模块时不可用?

python - 如何从 SQL 模型中为连接到它的 QListView 选择行

python - 重写addAction()来修改pyqt中的字符串和QIcon

python - 如何在运行时更改工具栏中 Action 的图标?