#-*- coding:utf-8 -*- ''' TableWidget ''' __author__ = 'Tony Zhu' import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QWidget, QApplication, QLabel, QTableWidget, QHBoxLayout, QTableWidgetItem, QComboBox, \ QFrame, QPushButton from PyQt5.QtGui import QFont,QColor,QBrush,QPixmap class TableSheet(QWidget): def __init__(self): super().__init__() self.initUi() self.setMinimumSize(850, 600); def douclicked(self,checked): bu = self.sender() if isinstance(bu, QPushButton): print(bu.__getattribute__("a"),checked) print('%s is pressed' % bu.text()) bu.setText("guanbi") # self.lbl.setText('%s is pressed' % bu.text()) else: pass # print('%s is pressed' % bu.text()) # self.lbl.setText('no effect') # print('Button {0} clicked'.format(obj)) # print("douclicked") def initUi(self): horizontalHeader = ["工号","姓名","性别","年龄","职称"] self.setWindowTitle('TableWidget Usage') self.table = QTableWidget() self.table.setColumnCount(5) self.table.setRowCount(2) self.table.setHorizontalHeaderLabels(horizontalHeader) self.table.setEditTriggers(QTableWidget.NoEditTriggers) self.table.setSelectionBehavior(QTableWidget.SelectColumns) self.table.setSelectionMode(QTableWidget.SingleSelection ) for index in range(self.table.columnCount()): headItem = self.table.horizontalHeaderItem(index) headItem.setFont(QFont("song", 12, QFont.Bold)) headItem.setForeground(QBrush(Qt.gray)) headItem.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter) self.table.setColumnWidth(4,200) self.table.setRowHeight(0,40) #self.table.setFrameShape(QFrame.HLine)#设定样式 #self.table.setShowGrid(False) #取消网格线 #self.table.verticalHeader().setVisible(False) #隐藏垂直表头 self.table.setItem(0,0, QTableWidgetItem("001")) self.table.setItem(0,1,QTableWidgetItem("Tom")) # 修改 self.table.setItem(0,3,QTableWidgetItem("30")) self.table.setItem(0,4,QTableWidgetItem("产品经理")) self.table.setItem(1,0, QTableWidgetItem("005")) self.table.setItem(1,1,QTableWidgetItem("Kitty")) genderComb = QComboBox() genderComb.addItem("男性") genderComb.addItem("女性") genderComb.setCurrentIndex(1) # self.table.setCellWidget(1,2,genderComb) self.table.setItem(1,3,QTableWidgetItem("24")) self.table.setItem(1,4,QTableWidgetItem("程序猿安慰师")) row_count = self.table.rowCount() self.table.insertRow(row_count) mainLayout = QHBoxLayout() mainLayout.addWidget(self.table) self.setLayout(mainLayout) for i in range(2): updateBtn = QPushButton('开启'+str(i)) updateBtn.__setattr__("a","3533"+str(i)) # updateBtn.setStyleSheet(''' text-align : center; # background-color : NavajoWhite; # height : 30px; # border-style: outset; # font : 13px ''') updateBtn.clicked.connect(self.douclicked) # updateBtn.clicked.connect(self.douclicked) self.table.setCellWidget(i, 2, updateBtn) if __name__ == '__main__': app = QApplication(sys.argv) table = TableSheet() table.show() sys.exit(app.exec_())