設置控件的樣式,然后將控件放入到表格中
""" setCellWidget:將控件放到單元格 setItem: 將文本放到單元格 setStyleSheet: 設置控件的樣式(QSS) 在單元格中放置控件 """ from PyQt5 import QtGui, QtWidgets, QtPrintSupport from PyQt5.QtWidgets import QMainWindow from PyQt5.QtWidgets import * from PyQt5.QtPrintSupport import * import sys class PlaceControlInCell(QWidget): def __init__(self): super(PlaceControlInCell, self).__init__() self.printer = QPrinter() 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(['姓名', '性別', '體重(KG)']) textItem = QTableWidgetItem("小明") tableWidget.setItem(0, 0, textItem) #構造下拉框 combox = QComboBox() #下拉框添加內容 combox.addItem("男") combox.addItem("女") # QSS Qt StyleSheet #設置下拉框的樣式即邊距為3 combox.setStyleSheet('QComboBox(margin:3px)') #在表格中放入下拉框控件 tableWidget.setCellWidget(0, 1, combox) modifyButton = QPushButton('修改') modifyButton.setDown(True) #設置按鈕的樣式即邊距為3 modifyButton.setStyleSheet("QPushButton(margin:3px)") #在表格中放入按鈕的控件 tableWidget.setCellWidget(0, 2, modifyButton) self.setLayout(layout) if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) main = PlaceControlInCell() main.show() sys.exit(app.exec_())