Go-Qt5开发之进度条QProgressBar(26)

Go-Qt5开发之进度条QProgressBar

案例说明

  • 一个进度条是一个显示任务进展的控件。

  • QProgressBar控件提供了一个水平或垂直Qt5工具包的进度条。

  • 程序员可以设置进度条的最小和最大值。默认值是0到99。

  • 这个例子显示一个水平的进度条和一个按钮,用户通过点击按钮开始和停止进度条

demo.go

package main

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

/*
一个进度条是一个显示任务进展的控件。
QProgressBar控件提供了一个水平或垂直PyQt5工具包的进度条。
程序员可以设置进度条的最小和最大值。默认值是0到99。


这个例子显示一个水平的进度条和一个按钮,用户通过点击按钮开始和停止进度条
*/

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

	// 进度条
	pbar := widgets.NewQProgressBar(widget)
	pbar.SetGeometry2(30, 40, 200, 25)
	pbar.SetValue(0)

	btn := widgets.NewQPushButton2("Start", widget)
	btn.Move2(40, 80)


	// 计数
	step := 0

	// 定时器,我们使用定时器timer来激活QProgressBar
	//timer := core.NewQBasicTimer()
	timer := core.NewQTimer(widget)
	// 每个QObject及其子类都有一个timerEvent()事件处理器。
	//我们要重新实现这个事件处理器来响应定时器事件。
	timer.ConnectEvent(func(e *core.QEvent) bool {
		if step >= 100 {
			timer.Stop()
			btn.SetText("Finished")
			return true
		} else {
			step = step + 1
			pbar.SetValue(step)
		}
		return false
	})


	// //方法中启动/停止定时器。
	btn.ConnectClicked(func(checked bool) {
		if timer.IsActive() {
			timer.Stop()
			btn.SetText("Start")
		} else {
			//我们调用start()方法启动一个计时器。这个方法有两个参数:超时和对象将接收的事件。
			timer.Start(100)
			btn.SetText("Stop")
		}

	})

	return app
}

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

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

	// 显示组件
	app.Show()

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值