Go-Qt5开发之控件QCheckBox(23)

Go-Qt5开发之控件QCheckBox

控件介绍

控件是构建应用程序的基本模块,Qt5提供各种各样的控件;
包括按钮、复选框、滑动条、列表框等;
我们将详细介绍几个常用的控件:
QCheckBox,ToggleButton,QSlider,QProgressBar,QCalendarWidget
QPixmap、QLineEdit QSplitter,QComboBox

案例说明

  • QCheckBox复选框控件,它有两个状态:打开和关闭,他是一个带有文本标签(Label)的控件。
  • 复选框常用于表示程序中可以启用或禁用的功能。
  • 在我们的示例中,我们将创建一个复选框,将切换窗口标题。

demo.go

package main

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

/*
QCheckBox复选框控件,它有两个状态:打开和关闭,他是一个带有文本标签(Label)的控件。
复选框常用于表示程序中可以启用或禁用的功能。

在我们的示例中,我们将创建一个复选框,将切换窗口标题。
*/

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

	// 复选框组件
	cb := widgets.NewQCheckBox2("Show title", widget)
	cb.Move2(20, 20)
	// 我们有设置窗口标题,所以我们也必须检查复选框。
	//默认情况下,没有设置窗口标题和也没有勾选复选框。
	cb.Toggle()
	// 这个方法会切换窗体的标题。
	//复选框的状态经由state参数传入方法。
	//在勾选复选框时设置窗体标题,取消勾选时就将标题设为空字符串。
	cb.ConnectStateChanged(func(state int) {
		//fmt.Println(reflect.TypeOf(state), state)
		//fmt.Println(reflect.TypeOf(core.Qt__Checked), core.Qt__Checked)
		if state == int(core.Qt__Checked) {
			app.SetWindowTitle("QCheckBox")
		} else {
			app.SetWindowTitle(" ")
		}
	})

	return app
}

func main() {
	// 创建一个应用程序对象
	// sys.argv参数是一个列表,从命令行输入参数
	widgets.NewQApplication(len(os.Args), os.Args)

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

	// 显示组件
	app.Show()

	// 确保应用程序干净的退出
	widgets.QApplication_Exec()
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值