Python中GUI界面编程,简单点的直接用tkinter,或者TTK,功能再强大点的可能就要用到PyQt5。
但对初学者而言,后者的命令完全与前者不同,PyQt5中没有任何一个控件可以通过简单直观的命令进行参数设置,有的参数还需要嵌套甚至再嵌套才能设置,而且参数还分布在不同的包里,对一个控件设置不下一番功夫搜查是绝对搞不定的。
比如就做下面这个界面,单说里面的表格显示是如何设置的。
1、 先把程序框架搭起来,运行后会显示一个空的窗口,以后的扩充代码会放在程序的中间部分:
import sysfrom 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) # 设置边距
再下来,每一个单元格都可以单独设置,单元格还可以插入组合下拉框等部件,大家可以根据需要进一步操作。