Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在PyQt中的给定QToolBar对象上迭代QAction项?_Python_Pyqt4_Qaction_Qtoolbar - Fatal编程技术网

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

Python 在PyQt中的给定QToolBar对象上迭代QAction项?,python,pyqt4,qaction,qtoolbar,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以确定哪些是“已检查的”。我没有使用

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

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

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

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

给定一个QToolBar,您可以通过调用其方法找到其所有QAction:

返回此小部件操作的列表(可能为空)

例如:

if isinstance(obj, QToolBar):
    print obj.actions()

给定QToolBar,您可以通过调用其方法找到其所有QAction:

返回此小部件操作的列表(可能为空)

例如:

if isinstance(obj, QToolBar):
    print obj.actions()

如果工具栏是在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()))

如果工具栏是在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()))

谢谢明天我将测试这两个建议。哇!那太完美了。正是我需要的,然后是一些。谢谢,谢谢。。。明天我将测试这两个建议。哇!那太完美了。正是我需要的,然后是一些。谢谢