QT繪製介面無變化解決方式(QT系列15)

2021-10-08 12:20:38 字數 959 閱讀 5039

在學完qt的繪製函式後,大家也許會想新增乙個按鈕,按下按鈕後就繪製另一張不同的影象,但實際寫完後,卻發現沒有什麼作用。如果有人把介面隱藏再開啟就會發現,影象發生了變化。

這種情況的原因是qt的介面不能實時重新整理,所以繪製完影象後,介面不能顯示變化,隱藏再放大介面後介面會自動重新整理一次,這樣才使得介面上出現了新的圖畫。

在qt中呼叫下列函式可以解決這一問題。(最好用的是update()函式)

update()函式,實質上是呼叫了repaint函式,但是不是同步的,就是repaint函式可能不會立即執行。呼叫多次update()可能只執行了一次repaint()函式。

就是直接呼叫repaint()函式,如果這個控制項不是disable狀態或者不是隱藏狀態,它將直接呼叫paintevent()函式。如果你需要立刻重新整理,官方也建議之間是用repaint()函式。

如果以上都不行,你也可以試試以下這個方法。shownormal(),它也許會有用。

使用resize()函式。可以這樣呼叫this->resize(this->size());

最後可以選擇adjust()函式,一般情況下直接使用這個函式,就能進行介面的實時調整

//工程型別為qwidget時的函式

void qwidget::

update()

void qwidget::

repaint()

void qwidget::

shownormal()

void

resize

(const qsize &

)void qwidget::

adjustsize()

//如果工程型別換成qmainwindow,按下面這麼改就行

void qmainwindow::

update()

;

如果是通過按下按鍵改變影象,那在按鍵的槽函式末尾加乙個update()函式就可以了。

QT繪製手勢密碼介面

1 封裝類 ifndef afguesture h define afguesture h 手勢輸入控制項 輸入完成時,發出訊號result 外部呼叫者負責處理結果。include class afguesture public qframe q object signals void result...

Qt圓形等待介面繪製 3

一 效果圖如下 二 效果圖拆解 根據效果圖,實際就是以控制項中心為圓心,計算周圍12個小圓座標,然後繪製12個不同顏色,不同透明度的小圓。這裡顏色有兩個漸變,前幾個小圓透明度逐漸減小,後幾個小圓透明度逐漸增加,並且同時有顏色漸變。四 準備工作 初始化視窗類,類繼承自qdialog,設定視窗大小,去掉...

QT文字繪製

1 基本繪製 qpainter painter this 這個this要斟酌下 painter.drawtext 100,100,yafeilinux 2 中級繪製 qpainter painter this qrectf ff 100,100,300,200 設定乙個矩形 painter.draw...