Qt程式設計 設計ColorBar顏色欄

2021-09-22 21:45:58 字數 1281 閱讀 6907

畫過圖的都知道,我們常常用顏色的深淺來表示值的大小,在matlab作圖中,我們使用的是colorbar這個函式來給出顏色的直觀參考。下面給出matlab的示例:在matlab命令視窗輸入:

figure

surf(peaks)

colorbar

可以得到的影象如下:

通過右擊該顏色欄,可以選擇不同的顏色,當選擇jet後,可以得到如下的影象:

上面講了matlab如何運用顏色欄以及其好處,下面我們看看如何在qt中繪製顏色條。本以為qt中也有類似的函式,可以我沒有找到(如果誰知道,可以告知我),只好自己寫函式實現了。關於qt中最基本的使用qpaint畫圖我就不介紹了,網上也有很多教程。程式中我只是將matlab中colorbar常用的四種顏色欄(gray,jet,hsv,hot)進行了繪製。繪製過程只使用到了簡單的fillrect函式來畫填充四邊形。下面主要講講顏色的設定:

我們首先在上面matlab的colorbar上右擊選擇乙個你希望繪製的顏色欄(假設選擇了jet),然後選擇「開啟顏色圖編輯器」,得到如下介面:

將滑鼠放在顏色上,就可以得到對應的rgb、hsv的值。然後在qt中就可以通過程式描繪這種值的變化,就可以得到與之相同的顏色欄了。注意:在程式中,你可以任意選擇rgb或hsv來描述,我在程式中,兩種方式都用到了。

為了方便,我將工程放著乙個.cpp檔案中,因此只需要建立乙個空的qt專案然後新增下面的.cpp檔案就可以了,具體的程式實現如下:;

void painterwidget::paintevent(qpaintevent *event)

//------設定為jet顏色條---------//

float templength=colorbarlength/4;

for(int i=0;i

執行結果如下圖:

原文:

Qt程式設計 設計ColorBar顏色欄

畫過圖的都知道,我們常常用顏色的深淺來表示值的大小,在matlab作圖中,我們使用的是colorbar這個函式來給出顏色的直觀參考。下面給出matlab的示例 在matlab命令視窗輸入 figure surf peaks colorbar 可以得到的影象如下 通過右擊該顏色欄,可以選擇不同的顏色,...

非同步程式設計設計模式

非同步操作通常用於執行完成時間可能較長的任務,如開啟大檔案 連線遠端計算機或查詢資料庫。非同步操作在主應用程式執行緒以外的執行緒中執行。應用程式呼叫方法非同步執行某個操作時,應用程式可在非同步方法執行其任務時繼續執行。net framework 為非同步操作提供兩種設計模式 iasyncresult...

Jedis程式設計設計 連線池

jedis作為redis的最佳客戶端,它提供了連線池的特性,連線池 在通常情況下可以有效的提高應用的通訊能力,並且這是一種良好的設計模式。jedis的連線池設計基於apache commons pool原生庫,僅作了簡單的封裝 在本文中,我將介紹如何使用jedispool進行程式設計。一.連線池基本...