Go-Qt5開發之顏色(36)

Go-Qt5開發之顏色

案例說明

  • 顏色是一個對象代表紅、綠、藍(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()
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章