访问pyQt创建的QtGui对象

时间:2014-02-10 02:27:49

标签: python qt4 pyqt

所以我放弃了在python中使用UI的新功能。我并没有真正掌握核心概念,我认为这个简单的问题将有助于打开电灯开关。

如下面的代码片段所示,我导入了一个用Qt制作的ui文件。这个ui上面有一个按钮。如何在该按钮上进行点击事件?我已经学习了如何编写按钮并使用它的教程。我明白那个。这是如何访问对象和操纵由ui文件创建的对象的问题。我真正想要做的是在单击按钮时查看如何执行函数(或实例化类或其他)。那个功能是我写的。宝贝步骤虽然。任何答案和阐述将不胜感激。

    import sys
from PyQt4 import QtGui, uic, QtCore

class MyWindow(QtGui.QMainWindow):
    def __init__(self):
        super(MyWindow, self).__init__()
        uic.loadUi('myWidget.ui', self)
        self.show()

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    window = MyWindow()

    sys.exit(app.exec_())
像我说的那样。这是一个非常简单的问题,但我并没有真正掌握核心概念。谢谢你。

1 个答案:

答案 0 :(得分:4)

self.ui=uic.loadUi('curveViewer.ui', self)
#where `your_pushbutton` is the button name specified in your .ui file:
self.ui.your_pushbutton.clicked.connect(self.onBtnClicked)

或只是:

uic.loadUi('curveViewer.ui', self)
self.your_pushbutton.clicked.connect(self.onBtnClicked)

然后在您的班级onBtnClicked中定义方法MyWindow

def onBtnClicked():
    print 'pushbutton clicked'

请参阅New-style Signal and Slot Support

顺便说一下,最好删除self.show(),并将其删除:

window = MyWindow()
window.show()