QTableWidget

      在〈QTableWidget〉中尚無留言

QTableWidget簡介

QTableWidget的功能如同Excel資料表,  大都每種程式語言都有此功能, 例如C# 的DataGrid. 撰寫此種元件, 如同在撰寫Excel軟体, 功能強大且複雜, 要花一段時間熟悉.

QTableWidget要研讀的地方非常多. 本篇僅就工作上的需求, 記錄會用到的地方, 其專注的地方, 有如下數項
01. 行列數的新增
02. 水平垂直標頭設定
03. 行寬, 列高設定
04. ReadOnly 設定
05.  資料新增
06. 動態新增行列
07. 動態刪除
08. 選取模式
09. 更改資料立即更新之事件
10. 選取變更事件

設定表頭欄列數

self.datagrid = QTableWidget()
self.datagrid.setColumnCount(5)
self.datagrid.setRowCount(2)

增加表頭

horizontalHeader = ["商品編號", "商品規格", "商品顏色", "定型版號", "存放櫥位", "商品售價"]
self.datagrid.setHorizontalHeaderLabels(horizontalHeader)
self.datagrid.horizontalHeader().setVisible(True)

表頭字体, 顏色設定

for index in range(self.table.columnCount()):
    headItem = self.table.horizontalHeaderItem(index)
    headItem.setFont(QFont("song", 12, QFont.Bold))
    headItem.setForeground(QBrush(Qt.gray))
    headItem.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter)

增加內容

self.datagrid.setRowCount(len(rows))
for i, row in enumerate(rows):
    for j in range(1,len(row)):
        self.datagrid.setItem(i, j-1, QTableWidgetItem(row[j]))

設定欄寬及列高

columnWidth=[320, 650, 250, 180, 180, 180]
for index in range(self.datagrid.columnCount()):
    headItem = self.datagrid.horizontalHeaderItem(index)
    self.datagrid.setColumnWidth(index,columnWidth[index])
self.datagrid.setRowHeight(0,40)# 設定第0列高度為40

最適寬度及高度

最適寬高, 需將資料填好後, 才設定底下代碼

🔒 更多內容,請登入會員繼續閱讀。

立即登入

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *