PyQt的QTableWidget的全面總結與歸納
這幾天用QTableWidget用得很多,查了很多資料,發現大多數都不是很全,有時候查資料查得很辛苦;另一方面,以防以後自己忘了這些知識,所以在這裡就把我所接觸到的,所看到的都歸納在這裡。
首先QTableWidget是繼承於QTableView,QTableWidget是QT程式中常用的顯示資料表格的空間;它跟QTableView的主要區別是QTableView可以使用自定義的資料模型來顯示內容(也就是先要通過setModel來繫結資料來源),而QTableWidget則只能使用標準的資料模型,並且其單元格資料是通過QTableWidgetItem的物件來實現的(也就是不需要資料來源,將逐個單元格的資訊填好即可。這主要是因為QTableView內的setModel成員函式在QTableWidget類中成了私有成員,所以QTableWidget只能依賴於QTableWidgetItem。QTableWidgetItem用來填充表格中的一個單元格,整個表格都需要逐個單元格逐個單元格地構建起來。
然後我們就來看看QTableWidget中常用的方法。
首先生成一個MyTable=QTableWidget()
1.設定表單樣式
設定列數:MyTable.setColumnCount(3)
設定行數:MyTable.setRowCount(4)
設定預設列寬:myTable.horizontalHeader().setDefaultSectionSize(200)
設定預設行高:myTable.verticalHeader().setDefaultSectionSize(300)
設定某一列寬:myTable.horizontalHeader().resizeSection(0,300) #設定第一列的寬度
設定某一行高:myTable.verticalHeader().resizeSection(0,500) #設定第一行的高度
設定某一列寬:
設定某一列高:
設定橫向表頭的高度:myTable.horizontalHeader().setFixedHeight(100),且只能用該類方法設定橫向表頭的高度,
設定縱向表頭的寬度:myTable.verticalHeader().setFixedWidth(300) ,且只能用該類方法設定縱向表頭的寬度
設定表頭不可點選:myTable.verticalHeader().setClickable(False)
設定表頭字型加粗:font=myTable.horizontalHeader().font()
font.setBold(False)
myTable.horizontalHeader().setFont(font) 是指整個橫向表頭
設定表頭不塌陷:myTable.horizontalHeader().setHighlightSections(False)
設定表頭內某個元素的顏色:item=myTable.horizontalHeaderItem(1)
item.setTextColor(QColor(“red”)) ,設定橫向表頭第二個元素的顏色
設定表頭內某個元素的字型加粗:font=QFont()
font.setBold(True)
item=myTable.horizontalHeaderItem(0)
item.setFont(font), 設定橫向表頭第一個元素的字型加粗
設定表頭內容:list=[u’寶貝’,u’日子’,u’多個’,u’話費’]
myTable.setHorizontalHeaderLabels(list)
設定表格內容的填充屬性:
設定隱藏表頭:myTable.horizontalHeader().setVisible(False)
設定表格外部無邊框:myTable.setFrameShape(QFrame.Box)
設定不顯示格子線:myTable.setShowGrid(False)
設定表格的編輯屬性:QAbstractItemView.NoEditTriggers:不可編輯
QAbstractItemView.CurrentChanged:改變了即可編輯
QAbstractItemView.DoubleClicked:連續雙擊即可編輯
QAbstractItemView.SelectedClicked:在被選中的情況下單擊一次即可編輯
QAbstractItemView.EditKeyPressed:在按下平臺的編輯鍵那個專案上即可編輯
選擇時每次選擇一行:myTable.setSelectionBehavior(QAbstractItemView.SelectRows),
也可以設定引數為SelectColumns,這樣就會選擇一列。
選擇表格模式:myTable.setSelectionMode(QAbstractItemView.ExtendedSelection)
今天先寫到這裡,明天有時間再繼續更