PyQt5에서 셀에 컨트롤 추가

7303 단어 PyQt5

PyQt5에서, 우리는 어떻게 QTableWidget의 칸에 컨트롤을 추가해야 합니까?본 강의에서 몇 가지 예시를 제시하였다(해석은 코드에 첨부되어 있다)


setItem: 텍스트를 셀에 배치setcellWidget: 컨트롤을 셀에 배치setStyleSheet: 컨트롤 스타일 설정(Qt StyleSheet)
import sys

from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class PlaceControlInCell(QWidget):
    def __init__(self):
        super(PlaceControlInCell, self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle("         ")
        self.resize(430, 300)
        layout = QHBoxLayout()
        tableWidget = QTableWidget()

        #      
        tableWidget.setRowCount(4)
        tableWidget.setColumnCount(3)

        layout.addWidget(tableWidget)

        tableWidget.setHorizontalHeaderLabels(['  ', '  ', '  '])

        #        
        textItem = QTableWidgetItem("  ")
        tableWidget.setItem(0, 0, textItem)

        #       
        combox = QComboBox()
        combox.addItem(" ")
        combox.addItem(" ")

        # QSS Qt StyleSheet
        combox.setStyleSheet('QComboBox{margin:3px}')

        #  QTableWidget    
        tableWidget.setCellWidget(0, 1, combox)

        button = QPushButton("  ")

        #           
        button.setDown(True)
        button.setStyleSheet('QPushButton{margin:3px}')
        tableWidget.setCellWidget(0, 2, button)

        self.setLayout(layout)



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

좋은 웹페이지 즐겨찾기