这一节,我们用到信号与槽。这是pyqt的特有的东西。当你按下按钮的时候终端就会输出语句
import sys
from PySide2.QtWidgets import QApplication, QPushButton
from PySide2.QtCore import Slot #这里我报错了,我不知道怎么引入slot
#我用的Pyqt5所以,可能是这个原因,我就改成 * 全部了。
# Greetings
@Slot() #这里我给注释了
def say_hello():
print("Button clicked, Hello!")
【我这里修改了一下他的代码,不然我不能运行,辛亏看过pyqt的教程。这里他用了装饰,我学的别的教程就不需要直接定义函数,然后回头连接到这个函数就行了】
这里我们实例化一个按钮,然后把字符传递给构造函数。
# Create a button
button = QPushButton("Click me")
记得要把函数放在上面。有两种方式可以做到信号和槽的连接。我们使用新的方式。如果你想看旧的方式,去维基百科找。。。。
按钮有一个预定的信号clicked 然后我们用connect () 来连接槽【说实话,我感觉这样的概念完全多余一样, 学过js的大概都能很容易理解,其实就是事件需要触发】
# Connect the button to the function
button.clicked.connect(say_hello)
最后我们展示,然后循环
# Show the button
button.show()
# Run the main Qt loop
app.exec_()
完整代码是:
#!/usr/bin/python
import sys
from PySide2.QtWidgets import QApplication, QPushButton
from PySide2.QtCore import Slot #改成*
#pyside2 改成pyqt5
@Slot() #注释
def say_hello():
print("Button clicked, Hello!")
# Create the Qt Application
app = QApplication(sys.argv)
# Create a button, connect it and show it
button = QPushButton("Click me")
button.clicked.connect(say_hello)
button.show()
# Run the main Qt loop
app.exec_()
【你别拿过去直接用,会报错的,除非你安装l pyside2】