• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

1.9 qt.go 窗口

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

05 窗口

QWidget

QWidget类是所有用户界面对象的基类。

窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且将自己的表现形式绘制在屏幕上。每一个窗口部件都是矩形,并且它们按Z轴顺序排列。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。

QWidget有很多成员函数,但是它们中的一些有少量的直接功能:例如,QWidget有字体属性,但是自己从来不用。为很多继承它的子类提供了实际的功能,比如QLabel、QPushButton、QCheckBox等等。

这是之前咱们创建出来的widget窗口

QMainWindow

QMainWindow类提供一个有菜单条、工具栏、状态条的主应用程序窗口(例如:开发Qt常用的IDE-Visual Studio、Qt Creator等)。

一个主窗口提供了构建应用程序的用户界面框架。Qt拥有QMainWindow及其相关类来管理主窗口。

QMainWindow拥有自己的布局,我们可以使用QMenuBar(菜单栏)、QToolBar(工具栏)、QStatusBar(状态栏)以及QDockWidget(悬浮窗体),布局有一个可由任何种类小窗口所占据的中心区域。

使用原则:

如果需要嵌入到其他窗体中,则基于QWidget创建。

如果是顶级对话框,则基于QDialog创建。

如果是主窗体,则基于QMainWindow创建。

下面咱们作为主窗口如何创建:

用qt设计师,创建Main Window,保存为mainWindow.ui后,用go-uic.exe mainWindow.ui 生成.go文件


添加main.go

func main() {
	app := qtwidgets.NewQApplication(len(os.Args), os.Args, 0)

	mw := NewUi_MainWindow2()
	mw.MainWindow.Resize(200, 200)
	mw.MainWindow.Show()

	app.Exec()
}

可以看到生成的ui.mainWindow.go,文件中, Ui_MainWindow的子类.QMainWindow 可以理解为整个大窗口,里面有Menubar和Statusbar,还有中间的区域QWidget

type Ui_MainWindow struct {
	Centralwidget *qtwidgets.QWidget
	Menubar       *qtwidgets.QMenuBar
	Statusbar     *qtwidgets.QStatusBar
	MainWindow    *qtwidgets.QMainWindow
}

可以在QWidget画线,在添加以下代码就可以实现了,是不是很简单.

if true {
	f1 := func(painter *qtgui.QPainter) {
		painter.SetPen2(1)
		painter.DrawLine2(10, 10, 100, 100)
	}
	mw.Centralwidget.InheritInitPainter(f1)
}


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap