案例说明
-
QCalendarWidget提供了一个基于月份的日历控件。
-
它使用户以一种简单直观的方式来选择日期。
-
示例中创建了一个日历控件和一个标签控件。选择的日期会显示在标签控件中。
demo.go
package main
import (
"github.com/therecipe/qt/core"
"github.com/therecipe/qt/gui"
"github.com/therecipe/qt/widgets"
"os"
)
/*
QCalendarWidget提供了一个基于月份的日历控件。
它使用户以一种简单直观的方式来选择日期。
示例中创建了一个日历控件和一个标签控件。选择的日期会显示在标签控件中。
*/
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()
// 日历控件
cal := widgets.NewQCalendarWidget(widget)
cal.SetGridVisible(true)
//cal.Move2(20, 20)
// 如果我们从部件选择一个日期,点击[QDate]发出信号。
lbl := widgets.NewQLabel(widget, 0)
date := cal.SelectedDate()
lbl.SetText(date.ToString("yyyy年MM月dd日"))
lbl.Move2(130, 260)
// 我们检索所选日期通过调用selectedDate()方法。
//然后我们将date对象转换为字符串,并将其设置为小部件的标签。
cal.ConnectClicked(func(date *core.QDate) {
lbl.SetText(date.ToString("yyyy年MM月dd日"))
})
return app
}
func main() {
// 创建一个应用程序对象
// sys.argv参数是一个列表,从命令行输入参数
widgets.NewQApplication(len(os.Args), os.Args)
// 初始化窗口
app := InitUi()
// 显示组件
app.Show()
// 确保应用程序干净的退出
widgets.QApplication_Exec()
}