Python中GUI界面編程,簡單點的直接用tkinter,或者TTK,功能再強大點的可能就要用到PyQt5。
但對初學者而言,後者的命令完全與前者不同,PyQt5中沒有任何一個控件可以通過簡單直觀的命令進行參數設置,有的參數還需要嵌套甚至再嵌套才能設置,而且參數還分佈在不同的包裡,對一個控件設置不下一番功夫搜查是絕對搞不定的。
比如就做下面這個界面,單說裡面的表格顯示是如何設置的。
![Python PyQt5 表格控件(QTableWidget)的功能設置](http://p2.ttnews.xyz/loading.gif)
1、 先把程序框架搭起來,運行後會顯示一個空的窗口,以後的擴充代碼會放在程序的中間部分:
![Python PyQt5 表格控件(QTableWidget)的功能設置](http://p2.ttnews.xyz/loading.gif)
<code>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_())/<code>
二、增加表格部件,放在一個佈局中,就顯示出一個表格的原始面貌:
<code>self.tab=QTableWidget(3, 1) # 3行1列的表格self.vLayout=QVBoxLayout() # 垂直佈局self.vLayout.addWidget(self.tab) # 表格放入佈局self.setLayout(self.vLayout) # 應用佈局/<code>
2、 看著窗口邊框不順眼,去掉:
<code>self.setWindowFlags(Qt.FramelessWindowHint) # 設置一個無邊框窗口/<code>
三、給垂直列表頭換上名字:
<code>self.tab.setVerticalHeaderLabels(['收入', '支出', '餘額']) # 設置垂直列表頭/<code>
四、水平列表頭不需要,要隱藏:
<code>self.tab.horizontalHeader().setVisible(False) # 設置行標題隱藏/<code>
五、設置表格水平拉伸
<code>self.tab.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) # 設置表格水平拉伸/<code>
六、給單元格賦值
<code>self.tabItem1=QTableWidgetItem('10000.00') # self.tab.setItem(0, 0, self.tabItem1) # 給0行0列的單元格賦值/<code>
七、設置單元格水平右對齊,垂直居中對齊
<code>self.tabItem1.setTextAlignment(Qt.AlignRight|Qt.AlignVCenter) # 水平右對齊,垂直居中對齊/<code>
8、 還想設置字體顏色?
<code>self.tab.setStyleSheet('background-color:DarkCyan;color:red;font:16px') # 設置字體顏色大小等/<code>
九、表格外面沒充滿窗口,將佈局的邊距設為0就行了
<code>self.vLayout.setContentsMargins(0,0,0,0) # 設置邊距/<code>
再下來,每一個單元格都可以單獨設置,單元格還可以插入組合下拉框等部件,大家可以根據需要進一步操作。