【问题标题】:Connect Signal emited from method Class into different Class Slot Custom Signals PySide将从方法类发出的信号连接到不同的类槽自定义信号 PySide
【发布时间】:2017-07-18 11:49:14
【问题描述】:

我想将 closeWidgetUI 类方法发出的信号连接到 addTool 类方法中。但这似乎只适用于 PyQt4 而不是 PySide。每次我点击 self.close_btn.clicked.connect(self.closeWidgetUI) 中创建的 closeButton 时,程序都会冻结并自行关闭。有什么建议吗?

import PySide.QtCore as qc
import PySide.QtGui  as qg

class InterpolateIt(dc,qg.QDialog):
    def __init__(self):
        qg.QDialog.__init__(self)

        """ MORE THINGS 
        OVER THIS PART NOT IMPORTANT AT MOMENT"""

        add_button.clicked.connect(self.addTool)

    def addTool(self):

        #NEED TO CONNECT closeWidgetUI EMITED SIGNAL HERE 
        new_widget = InterpolateWidget()
        self.clicked.connect(new_widget, qc.SIGNAL('CLOSE'), self.removeTool)

    def removeTool(self,interpWidget):
        self.interpolateLayout.removeWidget(interpWidget)
        interpWidget.deleteLater()


# ------------------------------------------------------------------------------------------------------#        
class InterpolateWidget(qg.QFrame):
    def __init__(self):
        qg.QFrame.__init__(self)

        """ MORE THINGS 
        OVER THIS PART NOT IMPORTANT AT MOMENT"""

        # HERE BUTTON EMIT SIGNAL AT CLICKED
        self.close_btn.clicked.connect(self.closeWidgetUI)

        # TRIGGER THIS FUNC
    def closeWidgetUI(self):
        self.emit(qc.SIGNAL('CLOSE'), self)

【问题讨论】:

    标签: python signals pyqt4 pyside signals-slots


    【解决方案1】:
    from functools import partial
    
     def addTool(self):
    
            #NEED TO CONNECT closeWidgetUI EMITED SIGNAL HERE 
            new_widget = InterpolateWidget()
            deleteTool = partial(self.removeTool,new_widget)
            new_widget.close_btn.clicked.connect(deleteTool)
    

    我就是这样做的!感谢我的大脑:) 干杯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-06
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 2018-03-17
      • 1970-01-01
      相关资源
      最近更新 更多