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