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


Python中GUI界面編程,簡單點的直接用tkinter,或者TTK,功能再強大點的可能就要用到PyQt5。

但對初學者而言,後者的命令完全與前者不同,PyQt5中沒有任何一個控件可以通過簡單直觀的命令進行參數設置,有的參數還需要嵌套甚至再嵌套才能設置,而且參數還分佈在不同的包裡,對一個控件設置不下一番功夫搜查是絕對搞不定的。

比如就做下面這個界面,單說裡面的表格顯示是如何設置的。

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

1、 先把程序框架搭起來,運行後會顯示一個空的窗口,以後的擴充代碼會放在程序的中間部分:

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

<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>

二、增加表格部件,放在一個佈局中,就顯示出一個表格的原始面貌:

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

<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>
Python PyQt5 表格控件(QTableWidget)的功能設置

三、給垂直列表頭換上名字:

<code>self.tab.setVerticalHeaderLabels(['收入', '支出', '餘額'])    # 設置垂直列表頭/<code>
Python PyQt5 表格控件(QTableWidget)的功能設置

四、水平列表頭不需要,要隱藏:

<code>self.tab.horizontalHeader().setVisible(False)  # 設置行標題隱藏/<code>
Python PyQt5 表格控件(QTableWidget)的功能設置

五、設置表格水平拉伸

<code>self.tab.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)   # 設置表格水平拉伸/<code>
Python PyQt5 表格控件(QTableWidget)的功能設置

六、給單元格賦值

<code>self.tabItem1=QTableWidgetItem('10000.00')      # self.tab.setItem(0, 0, self.tabItem1)           # 給0行0列的單元格賦值/<code>
Python PyQt5 表格控件(QTableWidget)的功能設置

七、設置單元格水平右對齊,垂直居中對齊

<code>self.tabItem1.setTextAlignment(Qt.AlignRight|Qt.AlignVCenter)   # 水平右對齊,垂直居中對齊/<code>
Python PyQt5 表格控件(QTableWidget)的功能設置

8、 還想設置字體顏色?

<code>self.tab.setStyleSheet('background-color:DarkCyan;color:red;font:16px') # 設置字體顏色大小等/<code>
Python PyQt5 表格控件(QTableWidget)的功能設置

九、表格外面沒充滿窗口,將佈局的邊距設為0就行了

<code>self.vLayout.setContentsMargins(0,0,0,0)    # 設置邊距/<code>
Python PyQt5 表格控件(QTableWidget)的功能設置

再下來,每一個單元格都可以單獨設置,單元格還可以插入組合下拉框等部件,大家可以根據需要進一步操作。


分享到:


相關文章: