본문 바로가기
프로그래밍 관련/PyQt

PyQt . Context Menu (마우스 우클릭 메뉴 만들기)

by 존버매니아.임베디드 개발자 2021. 12. 2.
반응형

4.6 컨텍스트 메뉴 - 공학자를 위한 PySide2 (wikidocs.net)

 

취미로 하는 프로그래밍 !!! :: PyQt5 -- context menu 사용법 3가지 (QTableWidget 사용함) (tistory.com)

 

위 두사이트 참고하여 공부해서 정리할 것


context menu란?

 

마우스 오른쪽 눌렀을 때 저렇게 메뉴 띄우는 기능을 말한다.

 

import sys
from PyQt5.QtWidgets import *
from PyQt5 import QtCore

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setupUI()

    def setupUI(self):
        self.setGeometry(800, 200, 800, 300)       

        self.ta1 = QTableWidget(self)
        self.ta1.resize(400, 500)
        self.ta1.setColumnCount(3)

        self.ta1.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
    
        action1 = QAction("메뉴1" , self.ta1)
        action2 = QAction("메뉴2" , self.ta1)

        action1.triggered.connect(self.action1_fun)
        action2.triggered.connect(self.action2_fun)


        self.ta1.addAction(action1)
        self.ta1.addAction(action2)

        table_column=["첫번째 열" , "두번째 열" , "Third 열"]
        self.ta1.setHorizontalHeaderLabels(table_column)

        
        #행 2개 추가
        self.ta1.setRowCount(2)
        
        #추가된 행에 데이터 채워넣음
        self.ta1.setItem(0, 0, QTableWidgetItem("(0,0)"))
        self.ta1.setItem(0, 1, QTableWidgetItem("(0,1)"))
        self.ta1.setItem(1, 0, QTableWidgetItem("(1,0)"))
        self.ta1.setItem(1, 1, QTableWidgetItem("(1,1)"))     

    def action1_fun(self):
        print("action1 메뉴 선택")
                     
    def action2_fun(self):
        print("action2 메뉴 선택")

    
if __name__ == "__main__":
    app = QApplication(sys.argv)
    mywindow = MyWindow()
    mywindow.show()
    app.exec_()
반응형

'프로그래밍 관련 > PyQt' 카테고리의 다른 글

PyQt TableWidget (심화1)  (3) 2021.12.03
PyQt. TableWidget(기본)  (1) 2021.12.03
PyQt 클래스 상속에 대하여  (0) 2021.12.01
PyQt . Qcombobox  (0) 2021.11.16
PyQt.마우스이벤트 pyautogui 마우스제어  (0) 2021.11.16