案例說明
-
通過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()
}