案例說明
-
顏色是一個對象代表紅、綠、藍(RGB)強度值。有效的RGB值的範圍從0到255。
我們可以用不同的方法定義了一個顏色。最常見的是RGB十進制或十六進制值的值。 -
我們也可以使用一個RGBA值代表紅色,綠色,藍色,透明度。我們添加一些額外的信息透明度。
-
透明度值255定義了完全不透明,0是完全透明的,例如顏色是無形的。
-
實例中我們繪製了3個不同顏色的矩形。
demo.go
package main
import (
"github.com/therecipe/qt/core"
"github.com/therecipe/qt/gui"
"github.com/therecipe/qt/widgets"
"os"
)
/*
顏色是一個對象代表紅、綠、藍(RGB)強度值。有效的RGB值的範圍從0到255。
我們可以用不同的方法定義了一個顏色。最常見的是RGB十進制或十六進制值的值。
我們也可以使用一個RGBA值代表紅色,綠色,藍色,透明度。我們添加一些額外的信息透明度。
透明度值255定義了完全不透明,0是完全透明的,例如顏色是無形的。
實例中我們繪製了3個不同顏色的矩形
*/
func InitUi() *widgets.QMainWindow {
// 創建窗口
app := widgets.NewQMainWindow(nil, 0)
// 設置窗口的標題
app.SetWindowTitle("Qt 教程")
// 設置窗口的位置和大小
app.SetGeometry2(300, 300, 300, 220)
// 設置窗口的圖標,引用當前目錄下的web.png圖片
app.SetWindowIcon(gui.NewQIcon5("images/app.ico"))
// 佈局窗口組件載體
widget := widgets.NewQWidget(app, core.Qt__Widget)
//widget.SetGeometry(core.NewQRect4(300, 300, 300, 220))
//widget.SetGeometry2(0, 0, 300, 220)
app.SetCentralWidget(widget)
// 狀態欄
app.StatusBar()
widget.ConnectPaintEvent(func(event *gui.QPaintEvent) {
qp := gui.NewQPainter2(widget)
//qp.Begin(widget)
col := gui.NewQColor3(0, 0, 0, 0)
// 定義一個使用十六進制符號顏色。
col.SetNamedColor("#d4d4d4")
qp.SetPen2(col)
// 設置畫刷顏色
// 我們爲QPainter設置了一個筆刷(Bursh)對象並用它繪製了一個矩形。
//筆刷是用於繪製形狀背景的基本圖形對象。
qp.SetBrush2(core.Qt__Dense2Pattern)
// DrawRect2()方法接受四個參數,前兩個是起點的x,y座標,後兩個是矩形的寬和高。
//這個方法使用當前的畫筆與筆刷對象進行繪製。
qp.DrawRect2(10, 15, 90, 60)
qp.SetBrush2(core.Qt__Dense4Pattern)
qp.DrawRect2(130, 15, 90, 60)
qp.SetBrush2(core.Qt__BDiagPattern)
qp.DrawRect2(250, 15, 90, 60)
qp.End()
})
return app
}
func main() {
// 創建一個應用程序對象
// sys.argv參數是一個列表,從命令行輸入參數
widgets.NewQApplication(len(os.Args), os.Args)
// 初始化窗口
app := InitUi()
// 顯示組件
app.Show()
// 確保應用程序乾淨的退出
widgets.QApplication_Exec()
}