PyQt5控制項的使用

2021-09-28 12:03:23 字數 4490 閱讀 2588

qtablewidget

qtabwidget

qpixmap

圖表工具qchart

下拉選擇框qcombobox

qtablewidget問題列表:

空間不夠時單元格文字顯示不全

設定item背景色和字型顏色

場景:當空間不夠時,單元格內容會顯示不完全出現省略號…,如下

方案:

table_object.horizontalheader(

).setsectionresizemode(qheaderview.resizetocontents)

# 根據內容自適應

場景:需要給**設定行間隔不同顏色時使用

# 先開啟隔行的背景顏色設定

qtablewidgetobj.setalternatingrowcolors(

true

)# 再使用qss設定

qtablewidgetobj.setstylesheet(

"alternate-background-color: rgb(218, 233, 231); /* 藍色 */ "

)

方案2:

# 偶數行設定背景色

if(row &1)

==0:# 偶數行

# 背景色

qtablewidgetitem.setbackground(qbrush(qcolor(

218,

233,

231)))

# 字型色

qtablewidgetitem.setforeground(qbrush(qcolor(

255,0,

0)))

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-華麗的分割線=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

qtabwidget問題列表:

部分tab的關閉按鈕顯示,部分不顯示的技巧

tab標籤頭樣式美化

1 關閉按鈕部分顯示

qtabwidget.settabsclosable(

true

)# 先設定顯示關閉按鈕

"""qtabwidget.tabbar().settabbutton(index, position, qwidget)

設定不讓顯示關閉按鈕的tab

.tabbar() 獲取標籤頭物件

.settabbutton() 設定按鈕

引數:index - 標籤索引

position - qtabbar.rightside (標籤位置)

qwidget - 設定為 none 即可

例如設定第乙個不顯示如下:

"""qtabwidget.tabbar(

).settabbutton(

0, qtabbar.rightside,

none

)

2 樣式美化

.setstylesheet(

""" qtabbar::pane

qtabbar::tab

qtabbar::tab:selected

qtabbar::tab:!selected

qtabbar::tab:hover

""")

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-華麗的分割線=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

qpixmap問題列表:

載入顯示的方式

"""1 從本地檔案載入"""

from pyqt5.qtgui import qpixmap, qimage

.setpixmap(qpixmap(

'media/images/start.png'))

# 檔案路徑從專案根目錄下開始即可

"""2 從網路載入"""

image = qimage.fromdata(map_stream)

# 引數為二進位製流,請求的結果

.setpixmap(qpixmap.fromimage(image)

)

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-華麗的分割線=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

qchart問題列表:

安裝使用方式

qchart圖表有關背景的一些設定

圖線出現模糊輪廓的問題

自定義軸刻度不對齊的問題

qtchart是單獨乙個模組,需要安裝pip install pyqtchart==5.10版本請配合pyqt版本安裝。

使用方式:from pyqt5.qtchart import qchartview, qchart

有關背景的一些設定:

1 隱藏背景網格線:

axisy.setgridlinevisible(

false);

# 隱藏背景網格y軸框線

axisx.setgridlinevisible(

false);

# 隱藏背景網格x軸框線

2 圖例設定

chart.legend(

).setvisible(

true

)# 圖例顯示

chart.legend(

).setalignment(qt.alignbottom)

# 圖例向下居中

3 邊框間距

chart.setcontentsmargins(0,

0,0,

0)# 設定外邊界全部為0

chart.setmargins(qmargins(0,

0,0,

0))# 設定內邊界全部為0

chart.setbackgroundroundness(0)

# 設定背景區域無圓角

4 設定畫布背景

chartview。setbackgroundbrush(qbrush(qcolor(34,

36,42)

))

有時候在畫柱形圖或散點圖由於資料量大,會出現如下情況,例如我畫了柱形圖:

原來是qt繪製圖形時,會用到qbrush和qpen,qpen用於繪製輪廓,qbrush用於繪製填充,預設情況下,不敢是qscatterseries繪製散點還是qbarset繪製柱形,用的qpen的顏色是白色的,也就是會出現白色的邊框,由於柱形夠小被白邊擋住了,所以看到了只是模糊的輪廓。

解決方案:設定qpen,有3個方法

bar = qbarset(

)# scat = qscatterseries() 同樣用法

# 方法1-設定畫筆的粗細為0

"""此法慎用,因為最終影象不設定顏色預設是黑色。其餘兩種還是保留自動顏色設定"""

pen = qpen(

)pen.setwidth(0)

bar.setpen(pen)

# 方法2-把畫筆的顏色設定為透明

bar.setpen(qpen(qt.transparent)

)# 方法3-不使用畫筆(只用qbrush填充)

bar.setpen(qpen(qt.nopen)

)

選擇自己喜歡的方式設定即可。

參照我的另一篇博文:pyqt5 qtchart自定義軸**順序

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-華麗的分割線=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

1 動態新增選項後文字被覆蓋

每次使用qcombobox都是一種修煉,它雖好用,但樣式太難整。動態新增選項後更是生不如死。

解決方案:這裡記錄2中方法:

1 使用此方法會改變整個控制項的大小:

qcombobox.setsizeadjustpolicy(qcombobox.adjusttocontents)

2 使用此方法不改變整個控制項大小:

qcombobox.view().setfixedwidth(最長字型的長度)

PYQT5常用控制項

一 利用qt設計師上面的旋鈕和顯示框來組合,用旋鈕操作,用顯示框顯示數字 旋鈕的訊號和槽選擇如圖,函式名稱隨便寫 需要注意的地方就是,寫曹函式的時候,帶乙個引數,名稱隨意,然後賦值給顯示器lcdnumber,如下 def valuec self,aa print aa self.lcdnumber....

PyQt5 高階控制項使用(QListWidget)

qlistwidget是乙個用於顯示資料的列表,每個條目中都是乙個qlistwidgetitem物件 qlistwidget可以設定多選 常用方法如下 常用訊號 例如 1 qlistwidget 控制項使用 2from pyqt5.qtwidgets import 3from pyqt5.qtgui...

pyqt5的使用目錄

pyqt5的安裝 我的第乙個例子 標籤控制項qlabel的使用 按鈕qpushbutton 訊號與槽 pyqt5模組介紹 pycharm活動模板 qobject qwidget窗體類 qwidget類 座標系統和大小和展示區域qwidget擴充父子關係 qwidget 層級關係 視窗狀態 最大化最小...