我正在用pyqt4在python 2.7中构建一个GUI。我想将一个按钮链接到脚本,有人向我提供了以下代码:
from PyQt4 import QtGui
import sys
# --- functions ---
def my_function(event=None):
print 'Button clicked: event:', event
print linetext.text()
# run your code
# --- main ---
app = QtGui.QApplication(sys.argv)
window = QtGui.QWidget()
# add "layout manager"
vbox = QtGui.QVBoxLayout()
window.setLayout(vbox)
# add place for text
linetext = QtGui.QLineEdit(window)
vbox.addWidget(linetext)
# add button
button = QtGui.QPushButton("Run", window)
vbox.addWidget(button)
# add function to button
button.clicked.connect(my_function)
window.show()
sys.exit(app.exec_())
我不明白为什么你会将event=None
作为my_function
的参数传递。当我在没有事件部分的情况下运行脚本时,它可以正常工作。
答案 0 :(得分:1)
不需要。
在Qt中,事件和信号/插槽是两个独立的系统。一般来说,事件最终来自应用程序的外部(例如键盘按下,鼠标移动等),而信号来自应用程序中
。点击是事件的组合(鼠标按下+鼠标释放),它们最初由Qt内部处理。然后,事件处理程序会在适当的时候发出clicked
信号。
clicked
信号实际上发送了检查状态(即True
或False
),而不是事件对象。但这与你的剧本并不相关(也就是说,你不需要为它提供论据)。