Python PyQt5 表格控件(QTableWidget)的功能设置


Python中GUI界面编程,简单点的直接用tkinter,或者TTK,功能再强大点的可能就要用到PyQt5。

但对初学者而言,后者的命令完全与前者不同,PyQt5中没有任何一个控件可以通过简单直观的命令进行参数设置,有的参数还需要嵌套甚至再嵌套才能设置,而且参数还分布在不同的包里,对一个控件设置不下一番功夫搜查是绝对搞不定的。

比如就做下面这个界面,单说里面的表格显示是如何设置的。

1、 先把程序框架搭起来,运行后会显示一个空的窗口,以后的扩充代码会放在程序的中间部分:

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
  
class myEx(QWidget): 
		def __init__(self):
    		super().__init__()
				self.setGUI()
		def setGUI(self):
    		self.setGeometry(200,200,300,200)
				self.setWindowFlags(Qt.FramelessWindowHint)     # 设置一个无边框窗口
        '''
						扩充代码放在这里
        '''
				self.show()


if __name__=='__main__':
		app=QApplication(sys.argv)
		ex=myEx()
		sys.exit(app.exec_())

二、增加表格部件,放在一个布局中,就显示出一个表格的原始面貌:

self.tab=QTableWidget(3, 1)		# 3行1列的表格self.vLayout=QVBoxLayout()		# 垂直布局self.vLayout.addWidget(self.tab)	# 表格放入布局self.setLayout(self.vLayout)		# 应用布局

2、 看着窗口边框不顺眼,去掉:

self.setWindowFlags(Qt.FramelessWindowHint)     # 设置一个无边框窗口

三、给垂直列表头换上名字:

self.tab.setVerticalHeaderLabels(['收入', '支出', '余额'])    # 设置垂直列表头

四、水平列表头不需要,要隐藏:

self.tab.horizontalHeader().setVisible(False)  # 设置行标题隐藏

五、设置表格水平拉伸

self.tab.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)   # 设置表格水平拉伸

六、给单元格赋值

self.tabItem1=QTableWidgetItem('10000.00')      # self.tab.setItem(0, 0, self.tabItem1)           # 给0行0列的单元格赋值

七、设置单元格水平右对齐,垂直居中对齐

self.tabItem1.setTextAlignment(Qt.AlignRight|Qt.AlignVCenter)   # 水平右对齐,垂直居中对齐

8、 还想设置字体颜色?

self.tab.setStyleSheet('background-color:DarkCyan;color:red;font:16px') # 设置字体颜色大小等

九、表格外面没充满窗口,将布局的边距设为0就行了

self.vLayout.setContentsMargins(0,0,0,0)    # 设置边距

再下来,每一个单元格都可以单独设置,单元格还可以插入组合下拉框等部件,大家可以根据需要进一步操作。

举报
评论 0