[python] 파이썬으로 사용자 인터페이스의 키보드 단축키 지원하기

사용자들이 프로그램을 효율적으로 사용하도록 도와주는 키보드 단축키는 많은 소프트웨어에서 기본적인 기능으로 제공됩니다. 이번 글에서는 파이썬으로 사용자 인터페이스의 키보드 단축키를 지원하는 방법에 대해 알아보겠습니다.

1. tkinter를 사용하여 키보드 이벤트 처리

tkinter는 파이썬의 표준 GUI 라이브러리로, 윈도우, 위젯, 이벤트 처리 등을 제공합니다. 키보드 이벤트를 처리하기 위해 bind 메소드를 사용할 수 있습니다. 예를 들어, 다음 코드는 ‘Ctrl+C’ 키 조합에 대한 이벤트 처리를 보여줍니다.

import tkinter as tk

def on_copy(event):
    print("Ctrl+C 눌림")

root = tk.Tk()
frame = tk.Frame(root, width=100, height=100)
frame.bind("<Control-c>", on_copy)
frame.pack()
root.mainloop()

2. PyQt로 키보드 단축키 구현

PyQt는 파이썬에서 사용 가능한 높은 수준의 GUI 프레임워크입니다. 키보드 단축키를 사용하기 위해 QShortcut 클래스를 사용할 수 있습니다. 아래의 예제는 ‘Ctrl+Q’ 조합에 대한 단축키를 만드는 방법을 보여줍니다.

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QAction, QShortcut, QKeySequence
from PyQt5.QtGui import QKeySequence

class Example(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.statusBar()

        exitAction = QAction('Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.triggered.connect(self.close)

        self.toolbar = self.addToolBar('Exit')
        self.toolbar.addAction(exitAction)

        QShortcut(QKeySequence('Ctrl+Q'), self, self.close)
        
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Shortcut')
        self.show()

app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

결론

이번 글에서는 tkinterPyQt를 사용하여 파이썬으로 사용자 인터페이스의 키보드 단축키를 지원하는 방법에 대해 알아보았습니다. 효율적인 프로그램 사용을 위해 다양한 상황에 맞게 키보드 단축키를 구현하는 것은 사용자 경험을 향상시키는 데 도움이 될 것입니다.