案例说明
- QColorDialog 显示一个用于选择颜色值的对话框。
- 这个应用程序显示一个按钮和一个QFrame。
- QFrame的背景为黑色。
- 通过QColorDialog,我们可以改变它的背景。
案例留有bug:直接选取颜色会导致无显示
demo.go
package main
import (
"fmt"
"github.com/therecipe/qt/core"
"github.com/therecipe/qt/gui"
"github.com/therecipe/qt/widgets"
"os"
)
func InitUi() *widgets.QMainWindow {
app := widgets.NewQMainWindow(nil, 0)
app.SetWindowTitle("Qt 教程")
app.SetGeometry2(300, 300, 300, 220)
app.SetWindowIcon(gui.NewQIcon5("images/app.ico"))
widget := widgets.NewQWidget(app, core.Qt__Widget)
widget.SetGeometry2(0, 0, 300, 220)
app.SetCentralWidget(widget)
col := gui.NewQColor3(0, 0, 0, 0)
frm := widgets.NewQFrame(widget, 0)
frm.SetGeometry2(130, 22, 100, 100)
frm.SetStyleSheet("QWidget { background-color: " + col.Name() + " }")
btn := widgets.NewQPushButton2("Dialog", widget)
btn.Move2(20, 20)
btn.ConnectClicked(func(checked bool) {
col2 := widgets.NewQColorDialog(widget).GetColor(
col,
widget,
"调色板",
widgets.QColorDialog__ShowAlphaChannel)
if col2.IsValid() {
fmt.Println("调色: ", col2.Name())
frm.SetStyleSheet("QWidget { background-color: " + col2.Name() + " }")
}
})
return app
}
func main() {
widgets.NewQApplication(len(os.Args), os.Args)
app := InitUi()
app.Show()
widgets.QApplication_Exec()
}