1. 程式人生 > >PyQt的QTableWidget的全面總結與歸納

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)

今天先寫到這裡,明天有時間再繼續更