【问题标题】:PyQt signal slot issue with signal outside creating classPyQt 信号槽问题与创建类之外的信号有关
【发布时间】:2015-03-01 21:52:36
【问题描述】:

我正在尝试创建一个工具栏,可以对其进行修改以即时更改操作。

但是,当我从创建工具栏的类外部添加操作时,没有发送信号。

在下面的示例中,永远不会触发新操作。知道如何做到这一点吗?

import sys
from PyQt4 import QtGui
from toolbarmodifier import ToolbarModifier

class FluidToolbar(QtGui.QMainWindow):
    def __init__(self):
        super(FluidToolbar, self).__init__()
        self.initUI()

    def initUI(self):               
        createAction = QtGui.QAction( 'create Action', self)
        createAction.triggered.connect(self.createActions)
        self.toolbar = self.addToolBar('create Action')
        self.toolbar.addAction(createAction)
        self.setGeometry(300, 300, 300, 200)  
        self.show()

    def createActions(self):
        print(">>createActions()")
        toolbarModifier = ToolbarModifier()
        toolbarModifier.addAction(self)

def main():
    app = QtGui.QApplication(sys.argv)
    ex = FluidToolbar()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

toolbarmodifier.py

from PyQt4 import QtGui
from PyQt4.QtGui import QWidget


class ToolbarModifier(QWidget):

    def __init__(self):
        super(ToolbarModifier, self).__init__()

    def newActionTriggered(self):
        print(">>newActionTriggered()")

    def addAction(self, gui):
        triggerAction = QtGui.QAction( 'New action', gui)
        triggerAction.triggered.connect(self.newActionTriggered)
        gui.toolbar.addAction(triggerAction)
        print("<<addAction()")

【问题讨论】:

    标签: python qt signals pyqt4


    【解决方案1】:

    没有返回父级的链接是问题所在。在 FluidToobar 中修改 createActions 方法中的代码以在调用中包含 self:

    toolbarModifier = ToolbarModifier(self)
    

    在 ToolbarModifier 中将前几行更改为:

    class ToolbarModifier(QtCore.QObject):
    
        def __init__(self, parent=None):
            super(ToolbarModifier, self).__init__(parent)
    

    【讨论】:

      猜你喜欢
      • 2011-08-08
      • 2012-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      • 2011-10-29
      • 2012-02-11
      • 2020-10-01
      相关资源
      最近更新 更多