PyQT中QTableWidget如何根據(jù)單元格內(nèi)容設(shè)置自動(dòng)寬度
QTableWidget根據(jù)單元格內(nèi)容設(shè)置自動(dòng)寬度
比如當(dāng)前有一個(gè)表格對(duì)象ws1, 現(xiàn)在向表格中添加內(nèi)容:
list = ['故人西辭黃鶴樓, 煙花三月下?lián)P州', '忽如一夜春風(fēng)來(lái), 千樹(shù)萬(wàn)樹(shù)梨花開(kāi)'] 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()
這樣整個(gè)工作表都將自動(dòng)為單元格內(nèi)容自動(dòng)設(shè)置寬度:

如果你只需要設(shè)置某一列為自動(dòng)寬度, 則只需要修改參數(shù):
for i in lsit : ws1. setItem(0, list.index(i), QTablewidgetItem(i)) ws1.resizeColumnToContents(0)
則只有第一列會(huì)自動(dòng)設(shè)置寬度:

另外還有以下用法:
resizeRowsToContents() resizeRowToContents(int)
可根據(jù)實(shí)際情況使用
QTableWidget設(shè)置列寬大小的幾種方式
我們?cè)谑褂肣TableWidget的時(shí)候,經(jīng)常會(huì)出現(xiàn)列寬大小和我們想象不一致的情況,如下圖:

內(nèi)容不能完全顯示,需要手動(dòng)調(diào)整列寬才能顯示完全。
還有如下圖:

因此需要我們擅于調(diào)整列寬為我們所使用,現(xiàn)將列寬調(diào)整總結(jié)如下(行寬請(qǐng)參考):
列寬自動(dòng)分配
self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) # self.tableWidget.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)
效果如下:

此種模式下,我們沒(méi)法手動(dòng)調(diào)整列寬。
手動(dòng)調(diào)整
self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Interactive)
效果如下:

使用Qt設(shè)計(jì)師編譯后生成的代碼就是這種的。
固定值
self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Fixed)
效果如下:

用戶無(wú)法調(diào)整該部分的大小。該部分只能使用resizeSection()以編程方式調(diào)整大小。節(jié)大小默認(rèn)為defaultSectionSize。
self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.tableWidget.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents)
我們把它和列寬自動(dòng)分配結(jié)合在一起看,效果立馬顯現(xiàn)。
效果如下:

上面兩種方式結(jié)合
self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.tableWidget.horizontalHeader().setSectionResizeMode(0, QHeaderView.Interactive)
效果如下:

看到?jīng)]有,列寬是自動(dòng)分配的,但是第一列我們可以手動(dòng)調(diào)整寬度,而表格整體的列寬仍是自動(dòng)分配的。第二、三列我們沒(méi)有辦法調(diào)整列寬,這個(gè)是自動(dòng)分配的。
自定義列寬
self.tableWidget.setColumnWidth(0, 40) self.tableWidget.setColumnWidth(1, 200) self.tableWidget.setColumnWidth(2, 200)
效果如下:

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python3.6+django2.0+mysql搭建網(wǎng)站過(guò)程詳解
這篇文章主要介紹了python3.6+django2.0+mysql搭建網(wǎng)站過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
使用Python爬蟲(chóng)框架獲取HTML網(wǎng)頁(yè)中指定區(qū)域的數(shù)據(jù)
在當(dāng)今互聯(lián)網(wǎng)時(shí)代,數(shù)據(jù)已經(jīng)成為了一種寶貴的資源,無(wú)論是進(jìn)行市場(chǎng)分析、輿情監(jiān)控,還是進(jìn)行學(xué)術(shù)研究,獲取網(wǎng)頁(yè)中的數(shù)據(jù)都是一個(gè)非常重要的步驟,Python提供了多種爬蟲(chóng)框架來(lái)幫助我們高效地獲取網(wǎng)頁(yè)數(shù)據(jù),本文將詳細(xì)介紹如何使用Python爬蟲(chóng)框架來(lái)獲取HTML網(wǎng)頁(yè)中指定區(qū)域的數(shù)據(jù)2025-03-03
在python中實(shí)現(xiàn)對(duì)list求和及求積
今天小編就為大家分享一篇在python中實(shí)現(xiàn)對(duì)list求和及求積,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
python二維鍵值數(shù)組生成轉(zhuǎn)json的例子
今天小編就為大家分享一篇python二維鍵值數(shù)組生成轉(zhuǎn)json的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
pyecharts繪制中國(guó)2020肺炎疫情地圖的實(shí)例代碼
在本篇文章里小編給大家整理的是關(guān)于pyecharts繪制中國(guó)2020肺炎疫情地圖的實(shí)例代碼內(nèi)容,有興趣的朋友們可以測(cè)試下。2020-02-02
Django 實(shí)現(xiàn)將圖片轉(zhuǎn)為Base64,然后使用json傳輸
這篇文章主要介紹了Django 實(shí)現(xiàn)將圖片轉(zhuǎn)為Base64,然后使用json傳輸,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03

