【从零开始的QT生活】第二章 QT的图像编程

QT里面,同时支持使用界面编程(GUI编程)
    我们先来简单的了解一下 QT的整个 GUI框架
    QT里面90%的类,我们习惯性称为控件
    QT里面所有的控件都继承自 QObject 类型(没有继承自QObject的类,我们就不称为控件,就称为普通的类)
    QObject 又分为2大类
        ① QObject的普通派生类,普通的控件类
        ② 派生出来一个叫做 QWidget的类,widget是窗口的意思,也就是说,从QWidget开始,拓展了可视化功能,从QWidget之后,就会派生出各种各样不同的窗口类,窗口类型不同,能够承载的数据是不同的

注意:QT是一个编程环境,他自己独立的形成了一个类似于系统的概念
        因此QT有自己的运作逻辑,针对所有的需要显示的控件:
            ① 这个控件,如果要显示的话,就需要一直显示在那边,程序一旦结束,这个控件也就不显示了
            ② 显示控件这个行为(也就是show函数),他在QT里面不属于普通函数
          QT里面的类当中的方法分为2种类型
                    1:普通函数    普通函数一旦调用,立刻执行
                    2:事件函数     事件函数调用之后不会立刻执行,而是会把这个事件函数移动到QT的事件循环中去,等待被执行
                注意:QT并不会自动调用自己事件循环,需要我们手动调用
                那么问题来了,如何调用QT的事件循环呢?
                    QApplication 类里面的 exec方法,所以,我们要创建一个 QApplication对象,然后通过该对象调用exec方法从而调动QT的事件循环.
                注意:QApplication对象,构造函数需要传入main函数的argc和argv

        使用QT写一个 hello world,要求呈现在一个可视化的窗口上,能够承载文字的窗口也不少 我们选择使用 QLabel 这个窗口去承载文字,label是标签的意思

如果是刚开始接触,上面的知识确实是有点难以理解,接下来就通过程序去完成上面这个可视化窗口,展示“你好,世界!”

一、代码实现

1.首先先新建文件,如图

 2.点击widget.ui文件,ui文件中就是设置控件属性、布局相关的地方,后续会详细说明

 3.左边是控件,中间的点状图就是后续运行看见的窗口,右上部分是窗口上的控件名称和所处的类,右下角是控件的属性,可以在属性面板中修改控件的基本属性。从左上角中搜索label,选择控件拖移到点状图中

 4.返回编辑面板,点击widget.h文件中,可以看见widget类中有个私有成员,widget类型的指针 ui,这个指针是指向整个窗口界面的指针,可以通过这个指针去控制窗口界面中所有的控件,给控件添加功能

 5.点击widget.cpp文件,给label控件添加功能,用setText方法用来设置文字

 6.点击编译,编译成功,执行结果如图

7.关闭窗口,效果实现!

二、 代码的逻辑

1.通过这个小程序是否感觉跟开头说的没啥关系,很多没有涉及到,但是事实恰恰相反,是QT环境早就将一切都设置好了,所以才让设计者只需关注代码逻辑的实现,而不用考虑到一些细枝末节的事情,而了解这些有助于更清晰的认识Qt运作的方式

2.通过下图,看看程序是怎么工作的

 3.因为新建文件的基类设置成窗口类,所以主函数中默认生成了一个事件循环,详细的看开头的说明,在这个事件循环中,添加了一个窗口类对象w,用show方法展示出这个窗口类的对象

4.如果没在窗口中添加任何东西,编译执行,结果就是一个空白的窗口,而这个小程序,是在ui文件中添加了一个label标签控件,随后通过窗口类默认设置的指针,让ui指针指向label控件,从里面添加内容

5.通过以上的操作,下一次编译执行时,窗口类对象w在构造时,会执行代码,在label控件中添加文字,最后展示窗口类对象w时,窗口里面的label控件也会展示,最终就是上面的展示效果

6.QT中控件多样,功能也多样,也可通过资源文件使得可视化界面变成私人定制,在逐步了解到常用控件后,将认识到QT的窗口,也能跟高端大气上档次……

下一章将介绍QT中常用的窗口控件

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值