如何在PYQT中创建按钮的点击事件

3

我在PyQT中创建按钮的时候遇到了一些问题。当我按照以下方式创建按钮点击事件时,图片无法保存。

        cv.SetImageROI(image, (pt1[0],pt1[1],pt2[0] - pt1[0],int((pt2[1] - pt1[1]) * 1)))
        if self.Button.click():
            cv.SaveImage('example.jpg', image)

    cv.ResetImageROI(image)

1
你需要学习PyQt中的“信号和槽”。请参考以下链接:http://pyqt.sourceforge.net/Docs/PyQt4/new_style_signals_slots.html - qurban
1个回答

8
你的代码问题在于你正在对调用QPushButton.click的按钮执行程序化点击,这在if self.Button.click():行中体现。你需要做的是将信号QPushButton.clicked连接到你代码中的适当槽上。信号和槽是Qt处理对象可能发生的一些重要事件的方式。这里我会给你提供一个例子,希望能有所帮助:
import PyQt4.QtGui as gui

#handler for the signal aka slot
def onClick(checked):
    print checked #<- only used if the button is checkeable
    print 'clicked'

app = gui.QApplication([])

button = gui.QPushButton()
button.setText('Click me!')

#connect the signal 'clicked' to the slot 'onClick'
button.clicked.connect(onClick)

#perform a programmatic click
button.click()

button.show()
app.exec_()

注意:要理解底层行为,请阅读Qt/PyQt的文档。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接