반응형

단축키로 버튼을 누르는 예제 코드입니다. 엄밀히 말하면 버튼을 실제로 클릭한다기 보다는 버튼 클릭시 호출되는 함수를 단축키 누를때 호출되도록 하는 것입니다.



2024. 4. 11.    최초작성




실행하면 두 개의 버튼이 보입니다. 

 




버튼 1에 보이는 단축키 Ctrl + P를 누르면 아래 메시지가 출력됩니다. 버튼 1을 클릭시에도 동일한 메시지가 출력됩니다.

 

버튼 1이 클릭되었습니다!




버튼 2에 보이는 단축키 1을 누르면 아래 메시지가 출력됩니다.  버튼 2를 클릭시에도 동일한 메시지가 출력됩니다.

 

버튼 2가 클릭되었습니다!



전체 코드입니다.

 

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QHBoxLayout
from PyQt5.QtGui import QKeySequence
from PyQt5.QtWidgets import QShortcut

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

        self.initUI()

    def initUI(self):
        self.setWindowTitle("단축키 예제")
        self.setGeometry(100, 100, 300, 200)

        self.button1 = QPushButton("버튼 1(Ctrl+P)", self)
        self.button1.clicked.connect(self.onButtonClick1)

        self.button2 = QPushButton("버튼 2(1)", self)
        self.button2.clicked.connect(self.onButtonClick2)



        layout = QHBoxLayout()
        layout.addWidget(self.button1)
        layout.addWidget(self.button2)
        self.setLayout(layout)

        # 단축키 설정
        self.shortcut1 = QShortcut(QKeySequence("Ctrl+P"), self)
        self.shortcut1.activated.connect(self.onButtonClick1)

        self.shortcut2 = QShortcut(QKeySequence("1"), self)
        self.shortcut2.activated.connect(self.onButtonClick2)

    def onButtonClick1(self):
        print("버튼 1이 클릭되었습니다!")

    def onButtonClick2(self):
        print("버튼 2가 클릭되었습니다!")


if __name__ == "__main__":
    app = QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.show()
    sys.exit(app.exec_())





반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts