在这篇教程中,我们会教你如何用PySide2处理信号和。信号和槽是Qt的一个特色,用来让你的图形组件与其他图形组件或Python代码交流。在例程中,我们将创建一个按钮:每当点击这个按钮,输出信息“Button clicked, Hello!”到Python控制台。
首先,引用所需的PySide2类和sys模块:
import sys
from PySide2.QtWidgets import QApplication, QPushButton
from PySide2.QtCore import Slot
然后创建一个函数,用来输出信息到控制台:
# Greetings
@Slot()
def say_hello():
print("Button clicked, Hello!")
@Slot() 是一个装饰器,用来将一个函数定义为槽。现在可以先不理解它,但是还是需要这么写来防止意外错误。
像之前的例程中提到的一样,你需要创建QApplication来运行你的代码:
# Create the Qt Application
app = QApplication(sys.argv)
创建一个QPushButton实例,它是一个可点击的按钮。在创建时传入的字符串会显示在按钮上:
# Create a button
button = QPushButton("Click me")
在显示按钮之前,我们需要将按钮与之前定义的say_hello()函数连接。有新老两种方法来建立连接,我们这里就演示新的方法。QPushButton预定义了一个叫clicked的信号,每当按钮被按下就会触发该信号。我们要把这个信号和say_hello()函数连接:
# 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
@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_()