教程
在本教程中,我们将向您展示如何 使用 Qt for Python处理信号和槽。信号和槽是 Qt 的一项功能,它可以让您的图形小部件与其他图形小部件或您的 Python 代码进行通信。我们的应用程序创建一个按钮,记录单击的 按钮,每次单击时都会向 python 控制台发送 “ hello ”消息。
导包: PySide6 类和 python sys模块:
import sys
from PySide6.QtWidgets import QApplication, QPushButton
from PySide6.QtCore import Slot
创建打印到控制台的函数:
# Greetings
@Slot()
def say_hello():
print("Button clicked, Hello!")
笔记: @Slot()是一个标识功能的狭槽一个装饰器。现在了解原因并不重要,一般都在信号方法上声明
创建你的app
# Create the Qt Application
app = QApplication(sys.argv)
创建QPushButton控件 并将标签名字 设置为 Click me
# Create a button
button = QPushButton("Click me")
在显示button 前 我们需要将它 和 say_hello 函数 绑定,方式有2种,这里只展示 新的方式,类似的方式 可以通过 此页面 了解 Signals and Slots in PySide6
绑定信号
QPushButton有一个clicked 点击函数 ,每次单击按钮时触发。我们将这个信号连接到say_hello()函数:
# Connect the button to the function
button.clicked.connect(say_hello)
完整代码:
#!/usr/bin/python
import sys
from PySide6.QtWidgets import QApplication, QPushButton
from PySide6.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()