Go-Qt5開發之QSplitter(30)

Go-Qt5開發之QSplitter

案例說明

  • 通過QSplitter,用戶可以拖動子控件邊界來調整子控件的尺寸。

  • 在下面的示例中,我們展示了三個由兩個QSplitter組織的QFrame控件。

  • 示例中我們創建了三個QFrame與兩個QSplitter。

  • 注意在某些主題中這些QSplitter可能會不可見。

demo.go

package main

import (
	"github.com/therecipe/qt/core"
	"github.com/therecipe/qt/gui"
	"github.com/therecipe/qt/widgets"
	"os"
)

/*
通過QSplitter,用戶可以拖動子控件邊界來調整子控件的尺寸。
在下面的示例中,我們展示了三個由兩個QSplitter組織的QFrame控件。


示例中我們創建了三個QFrame與兩個QSplitter。
注意在某些主題中這些QSplitter可能會不可見。
*/

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()

	hbox := widgets.NewQHBoxLayout2(widget)

	topleft := widgets.NewQFrame(widget, 0)
	topleft.SetFrameShape(widgets.QFrame__StyledPanel)
	col := gui.NewQColor3(0, 0, 0, 0)
	topleft.SetStyleSheet("QWidget { background-color: " + col.Name() + " }")

	topright := widgets.NewQFrame(widget, 0)
	topright.SetFrameShape(widgets.QFrame__StyledPanel)
	col = gui.NewQColor3(100, 100, 100, 100)
	topright.SetStyleSheet("QWidget { background-color: " + col.Name() + " }")

	bottom := widgets.NewQFrame(widget, 0)
	bottom.SetFrameShape(widgets.QFrame__StyledPanel)
	col = gui.NewQColor3(200, 200, 200, 200)
	bottom.SetStyleSheet("QWidget { background-color: " + col.Name() + " }")

	splitter1 := widgets.NewQSplitter2(core.Qt__Horizontal, widget)
	splitter1.AddWidget(topleft)
	splitter1.AddWidget(topright)
	splitter1.SetMinimumHeight(50)

	splitter2 := widgets.NewQSplitter2(core.Qt__Vertical, widget)
	splitter2.AddWidget(splitter1)
	splitter2.AddWidget(bottom)

	hbox.AddWidget(splitter2, 0, 0)

	return app
}

func main() {
	// 創建一個應用程序對象
	// sys.argv參數是一個列表,從命令行輸入參數
	widgets.NewQApplication(len(os.Args), os.Args)

	// 初始化窗口
	app := InitUi()

	// 顯示組件
	app.Show()

	// 確保應用程序乾淨的退出
	widgets.QApplication_Exec()
}

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