[PyQt5] QTableWidget 的總結與歸納(轉載)

rockrabbit發表於2019-10-30

這幾天用ableWidget用得很多,查了很多資料,發現大多數都不是很全,有時候查資料查得很辛苦;

另一方面,以防以後自己忘了這些知識,所以在這裡就把我所接觸到的,所看到的都歸納在這裡。

首先QTableWidget是繼承於QTableViewQTableWidgetQT程式中常用的顯示資料表格的空間;

它跟QTableView的主要區別是QTableView可以使用自定義的資料模型來顯示內容(也就是先要透過setModel來繫結資料來源),而QTableWidget則只能使用標準的資料模型,並且其單元格資料是透過QTableWidgetItem的物件來實現的(也就是不需要資料來源,將逐個單元格的資訊填好即可。

這主要是因為QTableView內的setModel成員函式在QTableWidget類中成了私有成員,所以QTableWidget只能依賴於QTableWidgetItemQTableWidgetItem用來填充表格中的一個單元格,整個表格都需要逐個單元格逐個單元格地構建起來。

然後我們就來看看QTableWidget中常用的方法。

首先生成一個

MyTable=QTableWidget()

設定列數:

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)

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

然而並沒有再更新.....

————————————————

版權宣告:本文為CSDN博主「chen_you_Nick」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結及本宣告。

原文連結:https://blog.csdn.net/f156207495/article/d...

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章