欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PyQT中QTableWidget如何根據(jù)單元格內(nèi)容設(shè)置自動寬度

 更新時間:2023年05月30日 10:39:54   作者:Junexus  
這篇文章主要介紹了PyQT中QTableWidget如何根據(jù)單元格內(nèi)容設(shè)置自動寬度問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

QTableWidget根據(jù)單元格內(nèi)容設(shè)置自動寬度

比如當(dāng)前有一個表格對象ws1, 現(xiàn)在向表格中添加內(nèi)容:

list = ['故人西辭黃鶴樓, 煙花三月下?lián)P州', '忽如一夜春風(fēng)來, 千樹萬樹梨花開']
for i in lsit :
	ws1. setItem(0, list.index(i), QTablewidgetItem(i))

執(zhí)行后顯示為:

如果需要將內(nèi)容顯示完整, 需要在代碼后加上:

for i in lsit :
	ws1. setItem(0, list.index(i), QTablewidgetItem(i))
ws1.resizeColumnsToContents()

這樣整個工作表都將自動為單元格內(nèi)容自動設(shè)置寬度:

如果你只需要設(shè)置某一列為自動寬度, 則只需要修改參數(shù):

for i in lsit :
	ws1. setItem(0, list.index(i), QTablewidgetItem(i))
ws1.resizeColumnToContents(0)

則只有第一列會自動設(shè)置寬度:

另外還有以下用法:

resizeRowsToContents()
resizeRowToContents(int)

可根據(jù)實(shí)際情況使用

QTableWidget設(shè)置列寬大小的幾種方式

我們在使用QTableWidget的時候,經(jīng)常會出現(xiàn)列寬大小和我們想象不一致的情況,如下圖:

內(nèi)容不能完全顯示,需要手動調(diào)整列寬才能顯示完全。

還有如下圖:

因此需要我們擅于調(diào)整列寬為我們所使用,現(xiàn)將列寬調(diào)整總結(jié)如下(行寬請參考):

列寬自動分配

self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
# self.tableWidget.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)

效果如下:

此種模式下,我們沒法手動調(diào)整列寬。

手動調(diào)整

self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Interactive)

效果如下:

使用Qt設(shè)計師編譯后生成的代碼就是這種的。

固定值

self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Fixed)

效果如下:

用戶無法調(diào)整該部分的大小。該部分只能使用resizeSection()以編程方式調(diào)整大小。節(jié)大小默認(rèn)為defaultSectionSize。

self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.tableWidget.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents)

我們把它和列寬自動分配結(jié)合在一起看,效果立馬顯現(xiàn)。

效果如下:

上面兩種方式結(jié)合

self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.tableWidget.horizontalHeader().setSectionResizeMode(0, QHeaderView.Interactive)

效果如下:

看到?jīng)]有,列寬是自動分配的,但是第一列我們可以手動調(diào)整寬度,而表格整體的列寬仍是自動分配的。第二、三列我們沒有辦法調(diào)整列寬,這個是自動分配的。

自定義列寬

self.tableWidget.setColumnWidth(0, 40)
self.tableWidget.setColumnWidth(1, 200)
self.tableWidget.setColumnWidth(2, 200)

效果如下:

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論