使用简单按钮#
在本教程中,我们将向您展示如何使用 Qt for Python 处理 信号和槽。 信号和槽 是 Qt 的一个特性,允许您的图形小部件相互通信或与您的 Python 代码通信。我们的应用程序创建了一个按钮,每次您点击它时,都将 Button clicked, Hello! 消息记录到 Python 控制台。
让我们首先导入必要的 PySide6 类和 python sys 模块
import sys
from PySide6.QtWidgets import QApplication, QPushButton
from PySide6.QtCore import Slot
同时,我们创建一个将消息记录到控制台的 Python 函数
# Greetings
@Slot()
def say_hello():
print("Button clicked, Hello!")
注意
@Slot() 是一个装饰器,用于将函数标识为槽。现在您不一定需要了解其工作原理,但始终使用它以避免意外的行为。
现在,就像前例中提到的,您必须创建 QApplication 来运行您的 PySide6 代码
# Create the Qt Application
app = QApplication(sys.argv)
让我们创建一个可以点击的按钮,它是 QPushButton 实例。为了标示按钮,我们将一个 Python 字符串传递给构造函数
# Create a button
button = QPushButton("Click me")
在我们显示按钮之前,我们必须将其连接到我们之前定义的 say_hello() 函数。这里有两种方法来做这件事;旧式和新式,后者更符合 Python 风格。在这个例子中,我们将使用新式方法。您可以在 PySide6 信号和槽 维基页面上找到更多关于这两种风格的信息。
QPushButton 有一个名为 clicked 的预定义信号,每当按钮被点击时都会触发。我们将这个信号连接到 say_hello() 函数
# Connect the button to the function
button.clicked.connect(say_hello)
最后,我们显示按钮并启动 Qt 主循环
# Show the button
button.show()
# Run the main Qt loop
app.exec()
以下是此示例的完整代码
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()
点击几次后,您将在终端看到类似以下内容