Go-Qt5开发之添加一个按钮并关闭窗口(5)

Go-Qt5开发之添加一个按钮并关闭窗口

案例说明

  • 关闭一个窗口可以点击标题栏上的X。
  • 在下面的例子中,我们将展示我们如何通过编程来关闭窗口。

demo.go

package main

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

// 关闭一个窗口可以点击标题栏上的X。
//在下面的例子中,我们将展示我们如何通过编程来关闭窗口。

// 控制窗口显示在屏幕中心的方法
func center(app *widgets.QMainWindow) {
	// 获得窗口
	qr := app.FrameGeometry()

	//  获得屏幕中心点
	cp := widgets.NewQDesktopWidget().AvailableGeometry2(app).Center()
	// 显示到屏幕中心
	qr.MoveCenter(cp)
	app.Move(qr.TopLeft())
}

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

	// 控制窗口显示在屏幕中心的方法
	center(app)

	// 添加一个按钮
	//btn := widgets.NewQPushButton(app)
	// 设置按钮内容
	//btn.SetText("关闭按钮")
	btn := widgets.NewQPushButton2("关闭按钮", app)
	// 设置按钮大小
	// btn.SizeHint() 显示默认尺寸
	btn.Resize(btn.SizeHint())
	// 设置按钮位置
	btn.Move2(50, 50)
	// 设置按钮触发,触发退出程序
	btn.ConnectClicked(func(checked bool) {
		fmt.Println("关闭窗口")
		app.Close()
	})

	btn.Show()

	return app
}

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

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

	// 显示组件
	app.Show()

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

发布了94 篇原创文章 · 获赞 52 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/weixin_43968923/article/details/105027583