教程

在本教程中,我们将向您展示如何 使用 Qt for Python处理信号和槽信号和槽是 Qt 的一项功能,它可以让您的图形小部件与其他图形小部件或您的 Python 代码进行通信。我们的应用程序创建一个按钮,记录单击的 按钮,每次单击时都会向 python 控制台发送 “ hello ”消息。

导包: PySide6 类和 python sys模块:

  1. import sys
  2. from PySide6.QtWidgets import QApplication, QPushButton
  3. from PySide6.QtCore import Slot

创建打印到控制台的函数:

  1. # Greetings
  2. @Slot()
  3. def say_hello():
  4. print("Button clicked, Hello!")

笔记: @Slot()是一个标识功能的狭槽一个装饰器。现在了解原因并不重要,一般都在信号方法上声明

创建你的app

  1. # Create the Qt Application
  2. app = QApplication(sys.argv)

创建QPushButton控件 并将标签名字 设置为 Click me

  1. # Create a button
  2. button = QPushButton("Click me")

在显示button 前 我们需要将它 和 say_hello 函数 绑定,方式有2种,这里只展示 新的方式,类似的方式 可以通过 此页面 了解 Signals and Slots in PySide6

绑定信号

QPushButton有一个clicked 点击函数 ,每次单击按钮时触发。我们将这个信号连接到say_hello()函数:

  1. # Connect the button to the function
  2. button.clicked.connect(say_hello)

最后,我们显示按钮,启动Qt主循环:

完整代码:

  1. #!/usr/bin/python
  2. import sys
  3. from PySide6.QtWidgets import QApplication, QPushButton
  4. from PySide6.QtCore import Slot
  5. @Slot()
  6. def say_hello():
  7. print("Button clicked, Hello!")
  8. # Create the Qt Application
  9. app = QApplication(sys.argv)
  10. # Create a button, connect it and show it
  11. button = QPushButton("Click me")
  12. button.clicked.connect(say_hello)
  13. button.show()
  14. # Run the main Qt loop
  15. app.exec()