📜  PyQt5 – 如何为按钮添加动作?(1)

📅  最后修改于: 2023-12-03 14:45:50.731000             🧑  作者: Mango

PyQt5 – 如何为按钮添加动作?

在PyQt5中为按钮添加动作非常简单。在这篇文章中,我们将向您展示如何为QPushButton添加一个单击事件,以及如何使用信号和槽在PyQt5中为QPushButton添加其他操作。

添加单击事件

添加单击事件是通过将.clicked信号连接到在按钮按下时要执行的处理程序方法来完成的。这就是您需要完成此操作的全部代码:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
        
    def initUI(self):
    
        # 创建按钮并设置大小、位置以及标签文本
        self.button = QPushButton('按钮', self)
        self.button.move(50, 50)
        self.button.resize(100,100)
        
        # 为按钮单击事件连接执行方法
        self.button.clicked.connect(self.on_click)
        
        # 界面设置
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('PyQt5按钮单击事件')
        self.show()
        
    # 单击事件的处理程序方法
    def on_click(self):
        print('PyQt5按钮单击事件')
            
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在代码中,我们首先创建了一个按钮并将其移动到所需的位置和设置其大小。然后,我们使用.clicked信号将按钮单击事件连接到on_click方法。最后,我们将按钮添加到QWidget并显示它。

在单击按钮时,将在控制台中打印 'PyQt5按钮单击事件'。

信号和槽

添加单击事件只是PyQt5中使用信号和槽的方法之一。如果您想在按钮单击事件之外执行其他操作,如当鼠标移动到按钮上时,您可以使用在PyQt5中的其他信号和槽。

例如,以下代码将添加一个槽,以在鼠标移动到按钮上时更改按钮的文本:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
        
    def initUI(self):
    
        # 创建按钮并设置大小、位置以及标签文本
        self.button = QPushButton('按钮', self)
        self.button.move(50, 50)
        self.button.resize(100,100)
        
        # 为按钮悬停事件连接执行方法
        self.button.entered.connect(self.on_enter)
        # 为按钮移出事件连接执行方法
        self.button.left.connect(self.on_leave)
        
        # 界面设置
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('PyQt5按钮悬停事件')
        self.show()
        
    # 悬停事件的处理程序方法
    def on_enter(self):
        self.button.setText('你悬停了!')
    
    # 移出事件的处理程序方法
    def on_leave(self):
        self.button.setText('按钮')
            
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在代码中,我们仍然首先创建了一个按钮。然后,我们使用.entered信号将鼠标悬停事件连接到on_enter方法,并使用.left信号将鼠标移出事件连接到on_leave方法。在按钮上移动鼠标时,文本将更改为“你悬停了!”,在鼠标移出按钮时,文本将更改为“按钮”。

这是使用PyQt5为QPushButton添加单击事件和其他操作的简单方法。希望这篇文章对您有所帮助!