自学QT,点滴记录

来源:互联网 发布:cad排料软件 编辑:程序博客网 时间:2024/05/28 05:19

总览:最近给自己制定了一个半年的提升计划,第一步就是自学Qt,教材使用的是霍亚飞的《Qt Creator 快速入门》,本文记录自己每天的学习收获、难点存疑以及客服的困难,也算是自己的一个学习笔记,学到哪里记到哪里,想到哪里写到哪里。希望能和大家共同探讨,共同进步。这是本人第一次写博客,无论在内容上还是在格式上,还请大神们多多指教。

由于之前断断续续的学过一点Qt,因此,所用教材中的第一第二章直接跳过,从第三章 窗口部件开始学起。


2017.11.6

今日主要学习窗口部件,主要知识点:

Qt中的所有的窗口部件都继承自QWidget类,而这个类继承自QObject和QPaintDevice,其中,QObject类是所有支持Qt对象模型的对象的基类,QPaintDevice类是所有可绘制的对象的基类。

Qt中把没有嵌入到其他部件中的部件称之为窗口。

窗口的类型:在构造窗口部件时在第二个参数中指定,默认值是Qt::Widget。第一个参数指定的是部件的父窗口部件。窗口的典型类型有如下几类

Qt::Dialog 对话框类型(没有最大化和最小化)

Qt::SplashScreen splash screen--不是太理解这是个什么东东

Qt::FramelessWindowHint 没有边框的窗口

Qt::WindowStaysOnTopHint 窗口一直在最上面


使用setWindowState设置窗口状态,典型的窗口状态有

Qt::WindowMaximized 窗口最大化

Qt::Windowminimized 窗口最小化

Qt::WindowFullScreen 全屏显示

Qt::WindowActive 活动窗口

Qt::WindowNoState 默认值


2017.11.7

今天主要学习了以下几个内容

1.窗口的几何布局

2.程序调试的方法

3.对话框

4.初识信号和槽


下面分别说明这几方面的内容

1.窗口的几何布局

窗口的几何布局是窗口出现的位置和窗口的大小,主要用到的是如下几个函数

x(),y() 分别返回部件在其父部件中的位置左边,默认值是0

geometry() 返回没有边框的窗口矩形的值,返回值是QRect类型,形式:(x,y,宽,高)

frameGeometry() 与上面那个类似,但是返回的是有边框的矩形的值

pos() (x(),y())

2.程序调试

程序调试有两种方法

第一种,如其他IDE工具类似,使用断点配合单步调试观察值

第二种,使用qDebug(),在使用时需要#include <QDebug>


3.对话框

对话框分为模态对话框和非模态对话框

模态对话框:与此对话框交互时不能与其他对话框交互,如文件选择对话框

非模态对话框:与此对话框交互时可以与其他对话框正常交互,如word的查找功能对话框

使用show()函数调用显示的是非模态对话框,使用exec()函数调用显示的是模态对话框

也可以使用setModal()函数设置对话框是模态还是非模态的,使用setWindowModality()函数也可以设置对话框的阻塞类型,有如下几种类型

Qt::NonModal 不阻塞任何窗口,是非模态

Qt::WindowModal 阻塞它的父窗口、所有祖先窗口以及它们的子窗口

Qt::ApplicationModal 阻塞整个应用程序的所有窗口

之后介绍了几种标准对话框,只学习了颜色对话框,其他几种对话框明天学习


初识信号和槽

信号和槽是Qt非常重要的部分,Qt使用信号和槽机制完成对象之间的协同操作

信号和槽关系的建立在我看来分为两个部分:手工书写和在ui界面上生成

先说ui界面上生成部分,界面生成又分为两种方法:

1)界面上存在的两个对象在信号和槽的编辑模式下直接连接

2)界面上选中一个部件,点击右键,选择跳到槽

再说手工书写的方法,手工书写也有两种方法

1)使用connect函数,建立信号和槽的联系,函数原型如下

connect(发射信号的对象, 发射的信号, 接收信号的对象, 要执行的槽)

2)书写槽函数名字的时候符合如下规则,就建立了相应的信号和槽关联

规则:on_发射信号的部件对象_信号名()

再次说明信号和槽是Qt非常重要的部分,此处暂时只学习到这里,后续章节还会更升入的学习,之后再更详细的说明


2017.11.08

今天主要学习了标准对话框,这部分不难,不做过多的记录

颜色对话框 QColorDialog

文件对话框 QFileDialog

输入对话框 QInputDialog

字体对话框 QFontDialog

消息对话框 QMessageBox

进度对话框 QProgressDialog

错误消息对话框 QErrorMessage

向导对话框 QWizard