Как узнать какая именно кнопка была нажата в pyqt5?

Пользователь

от fidel , в категории: Python , 7 месяцев назад

Как узнать какая именно кнопка была нажата в pyqt5?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от richie_mayert , 7 месяцев назад

@fidel 

В PyQt5 можно узнать, какая именно кнопка была нажата, используя сигнал clicked.


Вот пример кода, который показывает, как узнать, какая именно кнопка была нажата:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton
from PyQt5.QtCore import Qt

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("Button Example")

        button1 = QPushButton("Button 1", self)
        button1.move(50, 50)
        button1.clicked.connect(self.buttonClicked)

        button2 = QPushButton("Button 2", self)
        button2.move(50, 100)
        button2.clicked.connect(self.buttonClicked)

    def buttonClicked(self):
        button = self.sender()
        if button.text() == "Button 1":
            print("Button 1 was clicked")
        elif button.text() == "Button 2":
            print("Button 2 was clicked")

if __name__ == "__main__":
    app = QApplication([])
    mainWindow = MainWindow()
    mainWindow.show()
    app.exec()


В этом примере создаются две кнопки. При нажатии на кнопку, срабатывает метод buttonClicked, в котором с помощью self.sender() можно получить кнопку, на которую было нажато. Затем можно использовать метод text() для получения текста на кнопке и выполнить определенные действия в зависимости от текста кнопки.