Linux
未读1. Linux介绍1.1 Linux的诞生
1991年,GNU计划已经开发出了许多工具软件,最受期盼的GNU C编译器已经出现,GNU的操作系统核心HURD一直处于实验阶段(GNU工程从1984年起就在做这件事),没有任何可用性,实质上也没能开发出完整的GNU操作系统。
也是这一年, Linux诞生了, Linux 是 UNIX 操作系统的一个克隆系统, 但是Linux是开源的。 那时候它只是一个系统内核, 没有与之配套的应用软件,这时候 Linux 和 GNU一拍即合, 就有了我们现在使用的操作系统,GNU奠定了Linux用户基础和开发环境。
Linux时间线
1991年初,林纳斯·托瓦兹开始在一台386sx兼容微机上学习minix操作系统。
1991年4月,林纳斯·托瓦兹开始酝酿并着手编制自己的操作系统。
1991 年4 月13 日在comp.os.minix 上发布说自己已经成功地将 bash 移植到了minix 上,而且已经爱不释手、不能离开这个shell软件了。
1991年的10月5日,林纳斯·托瓦兹在comp.os.minix新闻组上发布消息,正式向外宣布L ...
文章中主要介绍了Qt中常用的容器控件, 包括: Widget, Frame, Group Box, Scroll Area, Tool Box, Tab Widget, Stacked Widget。 关于这些控件的使用除了文字描述、代码演示, 还有相关的视频讲解,赶紧给自己充电吧…
1. QWidget
关于QWidget在前面的章节中已经介绍过了, 这个类是所有窗口类的父类, 可以作为独立窗口使用, 也可以内嵌到其它窗口中使用。Qt中的所有控件都属于窗口类, 因此这个类也是所有控件类的基类。如果一个窗口中还有子窗口, 为了让子窗口有序排列, 这时候我们可以选择一个QWidget类型的容器, 将子窗口放到里边, 然后再给这个QWidget类型窗口进行布局操作。在这里给大家介绍一下关于这个类的一些属性,因为这个类是所有窗口类的基类,因此相关属性比较多,详细讲解可以观看视频。
关于这些属性大部分都有对应的API函数, 在属性名前加 set即可, 大家可以自己从 QWidget这个类里边搜索, 并仔细阅读关于这些函数的参数介绍。
在Qt中我们除了使用QWidget类型窗口作为容器 ...
文章中主要介绍了Qt中常用的按钮控件, 包括: QAbstractButton, QPushButton, QToolButton, QRadioButton, QCheckBox。 关于这些控件的使用除了文字描述、代码演示, 还有相关的视频讲解,赶紧给自己充电吧…
1. 按钮基类 QAbstractButton
在QT中为我们提供了可以直接使用的按钮控件, 如下图。这些按钮种类虽然繁多, 但是它们都拥有相同的父类 QAbstractButton。这些子类按钮的大部分属性都是从这个基类继承的,因此搞明白这个类为我们提供的相关功能还是非常重要的。其中Dialog Button Box比较特殊不是一个单一控件, 它是两个QPushButton的组合并且水平排列, 这个不能作为一个新控件来研究。
这些按钮控件之间的继承关系如下图:
下边从功能的视角, 给大家介绍一下QAbstractButton中的一些常用API
1.1 标题和图标1234567891011121314// 参数text的内容显示到按钮上void QAbstractButton::setText(cons ...
如果想要在某一窗口中显示右键菜单, 其处理方式大体上有两种, 这两种方式分别为基于鼠标事件实现和基于窗口的菜单策略实现。其中第二种方式中又有三种不同的实现方式, 因此如果想要在窗口中显示一个右键菜单一共四种实现方式, 下面依次为大家讲解…
1. 基于鼠标事件实现1.1 实现思路
使用这种方式实现右键菜单的显示需要使用事件处理器函数, 在Qt中这类函数都是回调函数, 并且在自定义窗口类中我们还可以自定义事件处理器函数的行为(因为子类继承了父类的这个方法并且这类函数是虚函数)。实现步骤如下:
在当前窗口类中重写鼠标操作相关的的事件处理器函数,有两个可以选择
1234// 以下两个事件二选一即可, 只是事件函数被调用的时机不同罢了// 这个时机对右键菜单的显示没有任何影响[virtual protected] void QWidget::mousePressEvent(QMouseEvent *event);[virtual protected] void QWidget::mouseReleaseEvent(QMouseEvent *event);
在数据表事件处理器函数内部判断是否 ...
内容摘要:文章中主要介绍了Qt的窗口布局以及使用, 主要内容包括: 布局的样式, 基于UI界面设置布局, 基于API设置布局。 文章中除了关于知识点的文字描述、代码演示, 还有相关的视频讲解。
1. 布局的样式
Qt窗口布局是指将多个子窗口按照某种排列方式将其全部展示到对应的父窗口中的一种处理方式。在Qt中常用的布局样式有三种,分别是:
布局样式
描述
行数
列数
水平布局
布局中的所有的控件水平排列
1行
N列(N>=1)
垂直布局
布局中的所有的控件垂直排列
N行(N>=1)
1列
网格(栅格)布局
布局中的所有的控件垂直+水平排列
N行
N列 (N>=1)
1234567891011有问有答: 1. 控件的位置可以通过坐标指定, 为什么还要使用布局? - 坐标指定的位置是固定的, 当窗口大小发生改变, 子窗口位置不会变化 - 使用坐标指定子窗口位置, 这个控件可能会被其他控件覆盖导致无法显示出来 - 使用布局的方式可以完美解决以上的问题 - 一般在制作窗口的过程中都 ...
内容摘要:文章中主要介绍了Qt中常用的窗口类, 主要内容包括: 窗口类的基类QWidget, 对话框基类QDialog, 带菜单栏工具栏状态栏的QMainWindow, 消息对话框QMessageBox, 文件对话框QFileDialog, 字体对话框QFontDialog, 颜色对话框QColorDialog, 输入型对话框QInputDialog, 进度条对话框QProgressDialog, 资源文件。 文章中除了关于知识点的文字描述、代码演示, 还有相关的视频讲解,开始学习。。。
1. QWidget
QWidget类是所有窗口类的父类(控件类是也属于窗口类), 并且QWidget类的父类的QObject, 也就意味着所有的窗口类对象只要指定了父对象, 都可以实现内存资源的自动回收。在1.1 Qt入门章节中已经为大家介绍了QWidget的一些特点, 为了让大家能够对这个类有更深入的了解, 下面来说一说这个类常用的一些API函数。关于这个窗口类的属性介绍, 请参考容器控件之QWidget。
1.1 设置父对象123456789// 构造函数QWidget::QWidg ...
在进行窗口程序的处理过程中, 经常要周期性的执行某些操作, 或者制作一些动画效果,看似比较复杂的问题使用定时器就可以完美的解决这些问题, Qt中提供了两种定时器方式一种是使用Qt中的事件处理函数这个在后续章节会给大家做细致的讲解,本节主要给大家介绍一下Qt中的定时器类 QTimer的使用方法。
要使用它,只需创建一个QTimer类对象,然后调用其 start() 函数开启定时器,此后QTimer对象就会周期性的发出 timeout() 信号。我们先来了解一下这个类的相关API。
1. public/slot function12345678910111213141516171819202122232425262728293031323334// 构造函数// 如果指定了父对象, 创建的堆内存可以自动析构QTimer::QTimer(QObject *parent = nullptr);// 设置定时器时间间隔为 msec 毫秒// 默认值是0,一旦窗口系统事件队列中的所有事件都已经被处理完,一个时间间隔为0的QTimer就会触发void QTimer::setInterval ...
内容摘要:文章中主要介绍了Qt中的信号槽, 主要内容包括: 信号槽的本质, 信号槽的关系, 标准信号槽的使用, 自定义信号槽的使用, 信号槽的拓展, Lambda表达式。 文章中除了关于知识点的文字描述、代码演示, 还有相关的视频讲解,赶紧学起来吧。
1. 信号和槽概述
信号槽是 Qt 框架引以为豪的机制之一。所谓信号槽,实际就是观察者模式(发布-订阅模式)。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,将想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作就会被自动触发。
1.1 信号的本质
信号是由于用户对窗口或控件进行了某些操作,导致窗口或控件产生了某个特定事件,这时候Qt对应的窗口类会发出某个信号,以此对用户的挑选做出反应。
因此根据上述的描述我们得到一个结论 – 信号的本质就是事件,比如:
按钮单击 ...
内容摘要:文章中主要介绍了Qt中常用的数据类型, 主要内容包括: 基础数据类型, Log日志输出, 字符串类型, QVariant, 位置和尺寸相关类型, 日期和时间相关类型。 文章中除了关于知识点的文字描述, 还有相关的视频讲解,下面开始学习。。。
1. 基础类型因为Qt是一个C++ 框架, 因此C++中所有的语法和数据类型在Qt中都是被支持的, 但是Qt中也定义了一些属于自己的数据类型, 下边给大家介绍一下这些基础的数类型。
QT基本数据类型定义在#include <QtGlobal> 中,QT基本数据类型有:
类型名称
注释
备注
qint8
signed char
有符号8位数据
qint16
signed short
16位数据类型
qint32
signed short
32位有符号数据类型
qint64
long long int 或(__int64)
64位有符号数据类型,Windows中定义为__int64
qintptr
qint32 或 qint64
指针类型 根据系统类型不同而不同,32位系统为qint32、64位系统 ...
内容摘要:文章主要是为初学者介绍Qt框架的一些基本特性, 主要内容包括: Qt的特点, Qt中的模块划分, Qt的安装, Qt项目文件介绍, Qt中的窗口类, Qt窗口的坐标体系, Qt框架的内存回收机制。 文章中除了关于知识点的文字描述, 还有相关的视频讲解 。
1. Qt概述1.1 什么是Qt
不论我们学习什么样的知识点首先第一步都需要搞明白它是什么,这样才能明确当前学习的方向是否正确,下面给大家介绍一下什么是Qt。
是一个跨平台的C++应用程序开发框架
具有短平快的优秀特质: 投资少、周期短、见效快、效益高
几乎支持所有的平台, 可用于桌面程序开发以及嵌入式开发
有属于自己的事件处理机制
可以搞效率的开发基于窗口的应用程序。
Qt是标准 C++ 的扩展, C++的语法在Qt中都是支持的
良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,可以快速上手。
Qt 提供了一种称为 signals/slots 的安全类型来替代 callback(回调函数),这使得各个元件 之间的协同工作变得十分简单。
1.2 Qt的特点
知道了Qt是什么之后,给大家介 ...