Go-Qt5开发之绝对定位(8)

Qt5布局有两种方式:

  • 绝对定位:
  • 布局类

绝对定位介绍

  • 绝对定位:程序指定每个控件的位置和大小(以像素为单位)。
  • 绝对定位有以下限制:
    • 如果我们调整窗口,控件的大小和位置不会改变;
    • 在各种平台上应用程序看起来会不一样;
    • 如果改变字体,我们的应用程序的布局就会改变;
    • 如果我们决定改变我们的布局,我们必须完全重做我们的布局;
    • 我们使用 Move2() 方法来控制控件的位置。

案例说明

  • 本节开始学习一些布局管理。
  • 创建一些标签,按位置进行摆放。

demo.go

package main

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

/*
Qt5布局有两种方式
	绝对定位
	布局类

绝对定位:程序指定每个控件的位置和大小(以像素为单位)。
绝对定位有以下限制:
    如果我们调整窗口,控件的大小和位置不会改变
    在各种平台上应用程序看起来会不一样
    如果改变字体,我们的应用程序的布局就会改变
    如果我们决定改变我们的布局,我们必须完全重做我们的布局
	我们使用 Move2() 方法来控制控件的位置。
*/

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

	lbl1 := widgets.NewQLabel2("Zetcode", app, 0)
	lbl1.Move2(15, 10)

	lbl2 := widgets.NewQLabel2("tutorials", app, 0)
	lbl2.Move2(35, 40)

	lbl3 := widgets.NewQLabel2("for programmers", app, 0)
	lbl3.Move2(55, 70)


	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/105027756