1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python qtablewedgit_PyQt5-高级控件使用(QTableWidget)

python qtablewedgit_PyQt5-高级控件使用(QTableWidget)

时间:2019-11-28 17:21:25

相关推荐

python qtablewedgit_PyQt5-高级控件使用(QTableWidget)

1 #QTableWidget 控件使用

2 from PyQt5.QtWidgets importQComboBox,QTableView,QAbstractItemView,QHeaderView,QTableWidget, QTableWidgetItem, QMessageBox,QListWidget,QListWidgetItem, QStatusBar, QMenuBar,QMenu,QAction,QLineEdit,QStyle,QFormLayout, QVBoxLayout,QWidget,QApplication ,QHBoxLayout, QPushButton,QMainWindow,QGridLayout,QLabel3 from PyQt5.QtGui importQIcon,QPixmap,QStandardItem,QStandardItemModel,QCursor,QFont,QBrush,QColor4 from PyQt5.QtCore importQStringListModel,QAbstractListModel,QModelIndex,QSize,Qt5

6 importsys7

8

9 classWindowClass(QWidget):10

11 def __init__(self,parent=None):12

13 super(WindowClass, self).__init__(parent)14 self.layout=QHBoxLayout()15 self.resize(400,300)16 tableWidget=QTableWidget()17 tableWidget.setRowCount(4)#行数

18 tableWidget.setColumnCount(4)#列数

19 tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)#所有列自动拉伸,充满界面

20 tableWidget.setSelectionMode(QAbstractItemView.SingleSelection) #设置只能选中一行

21 tableWidget.setEditTriggers(QTableView.NoEditTriggers) #不可编辑

22 tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows); #设置只有行选中, 整行选中

23 tableWidget.resizeColumnsToContents()#设置列宽高按照内容自适应

24 tableWidget.resizeRowsToContents()#设置行宽和高按照内容自适应

25 #tableWidget.horizontalHeader().setVisible(False)#设置列标题隐藏(针对列标题横向排列)

26 #tableWidget.verticalHeader().setVisible(False)#设置列标题隐藏(针对列标题纵向排列)

27 self.layout.addWidget(tableWidget)28 tableWidget.setHorizontalHeaderLabels(['姓名','地址','年龄','操作']) #横向标题排列,如果使用setVerticalHeaderLabels则是纵向排列标题

29 items=[['JONES','Beijing','23',''],['SMITH','SHAngHai','23',''],['ZY','Tianjin','23',''],['Smith','SJT','22','']]30 for i in range(len(items)):#注意上面列表中数字加单引号,否则下面不显示(或者下面str方法转化一下即可)

31 item=items[i]32

33 for j inrange(len(item)):34 #-----------------------------修改后程序,最后一列添加按钮-------------------#

35 if j!=3:36 item =QTableWidgetItem(str(items[i][j]))37 tableWidget.setItem(i, j, item)38 else: #最后一列添加控件

39 btn = QPushButton("删除")40 btn.setDown(True)41 btn.setStyleSheet("QPushButton{margin:3px};")42 tableWidget.setCellWidget(i, j, btn)43 #--------------------------------------------------------------------------#

44

45 #------------------------------0,1位置添加下拉列表框----------------------#

46 #某个单元格设置为控件

47 comBox=QComboBox()48 comBox.addItem("北京")49 comBox.addItems(["上海","天津"])50 comBox.setStyleSheet("QComboBox{margin:3px};")51 tableWidget.setCellWidget(0,1,comBox)52 #------------------------------------------------------------------------#

53 #字体设置

54 newItem=tableWidget.item(0,0)55 newItem.setFont(QFont("Times",12,QFont.Black))#字体样式加粗

56 newItem.setForeground(QBrush(QColor(255,0,0)))#字体颜色

57 #设置排序

58 tableWidget.sortItems(1,Qt.AscendingOrder)#Qt.DescendingOrder 升序降序

59 item_00=tableWidget.item(0,0)60 item_00.setTextAlignment(Qt.AlignRight)#Qt.AlignCenter ...

61 #合并单元格

62 tableWidget.setSpan(0,0,3,1)63 #单元格宽高设置

64 tableWidget.setColumnWidth(0,150)#第一个参数为行下标

65 tableWidget.setRowHeight(0,40)66 #设置不显示分割线

67 tableWidget.setShowGrid(False)68

69 #单元格设置图片

70 tableWidget.setItem(1,1,QTableWidgetItem(QIcon("./image/add.ico"),"百度"))71

72 tableWidget.setItem(0,0,newItem)73

74 self.setLayout(self.layout)75

76 if __name__=="__main__":77 app=QApplication(sys.argv)78 win=WindowClass()79 win.show()80 sys.exit(app.exec_())

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。