将从方法类发出的信号连接到不同的类槽自定义信号PySid

2024-10-02 16:32:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把closeWidgetUI类方法发出的信号连接到addTool类方法。但这似乎只适用于PyQt4而不是PySide。每次我点击自动关闭.已单击。连接(self.closeWidgetUI),程序会自动冻结并关闭。有什么建议吗?在

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)

Tags: 方法selfsignalinitdefconnectthisat
1条回答
网友
1楼 · 发布于 2024-10-02 16:32:37
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)

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

相关问题 更多 >