自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Goallegoal的博客

人生有两条路,一条是必须走的,一条是想走的,把必须走的走好,才能走好想走的路。

  • 博客(16)
  • 资源 (2)
  • 收藏
  • 关注

原创 Qt中的事件过滤器

Qt中的事件过滤器在程序到event事件分发器之间,还有一层更为高级的过滤,称为事件过滤器,该部分可以完成从程序分发到event事件之间的一次高级拦截。事件过滤器的使用包含两个步骤:1、给控件安装事件过滤器;2、重写eventfilter事件。// 步骤1,安装事件过滤器ui->label->installEventFilter(this);// 步骤2,重写eventfilter事件bool Widget::eventFilter(QObject *watched, QEve

2020-11-30 21:22:03 18

原创 Qt中event事件分发器

Qt中event事件分发器运行程序时会根据实际的操作触发不同的多个事件,例如按下鼠标事件,直观讲好像是点击鼠标后,直接会调用mousePressEvent来处理事件,其实不然,在程序与各事件处理函数之间,还有一个专门用来管理事件的部分,称为事件分发bool event(QEvent *ev)。因此,实际事件处理流程是:用户点击鼠标,程序接收到该动作,将其交付给事件分发,事件分发对事件进行判断,然后传递给对应的事件处理函数,完成事件的处理。事件分发的返回值为bool类型,如果返回值为true,则表示用户将

2020-11-30 21:03:33 26

原创 Qt实现定时器的两种方法

Qt实现定时器的两种方法第一种,重写QTimer类中的timerEvent()方法#include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget){ ui->setupUi(this); id1 = startTimer(1000); id2 = startTimer(2000);}Wi

2020-11-30 19:50:58 37

原创 Qt设置鼠标追踪setMouseTracking()

Qt设置鼠标追踪setMouseTracking()void setMouseTracking(bool enable)参数可以为true或者false,若将参数置为false,意味着关闭鼠标追踪,此时只有当至少一个鼠标按键按下时才能捕获到鼠标移动事件。而将参数置为true时,即使没有按下鼠标键,移动鼠标时也可以捕获鼠标的移动事件。...

2020-11-30 15:48:35 18

原创 Qt鼠标事件中的button()和buttons()

Qt鼠标事件中的button()和buttons()QEvent类是所有事件类的基类,Qt的主事件回路从事件队列获取本地窗口系统事件,将其转换为QEvent,然后再传递给QObjects。创建鼠标事件,MyLabel继承自QLabel,声明如下:#ifndef MYLABEL_H#define MYLABEL_H#include <QWidget>#include <QLabel>class MyLabel : public QLabel{ Q_OBJECT

2020-11-30 15:37:46 29

原创 Qt自定义控件及设计控件功能

Qt自定义控件及设计控件功能Qt Creator中自带多种常用的控件,使用者可以在设计模式下进行页面布局,拖拽生成想要使用的控件,并在编辑模式下对控件的功能实现进行控制。这些开发环境自带的控件虽然种类多但功能单一,每一种控件只能完成特定的功能。为了满足开发需要,就需要将其中的几种控件进行组合,来完成单一控件无法实现的任务。下面介绍如何在Qt Creator中封装自定义控件。在封装自定义控件前,先要new一个用来放置控件的ui,这样既可以继续使用设计模式,又不妨碍其他控件。右键点击项目,添加Qt设计师界面

2020-11-26 17:01:16 28

原创 Qt Creator中的Item Widgets部署及使用-QListWidget、QTreeWidget、QTableWidget控件

Qt Creator中的Item Widgets部署及使用-QListWidget、QTreeWidget、QTableWidget控件1、QListWidget控件在设计模式中,拖拽Item Widgets中的List Widget生成一个空的列表。然后回到编辑模式进行部署: // #include <QListWidget> // 基于item,每行都代表一个单独的QListWidgetItem项,先创建一行 QListWidgetItem *item = new

2020-11-26 15:22:19 18

原创 Qt常用对话框及用法总结

Qt常用对话框及用法总结1、QMessageBox模态消息对话框QMessageBox包含上述四种消息对话框,分别为问题、信息、警告、错误提示,对外API分别为:QMessageBox::StandardButton critical(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardB

2020-11-26 11:17:01 19

原创 Qt创建模态和非模态对话框

Qt创建模态和非模态对话框在使用软件时,会遇到各式各样的对话框,弹出的对话框大致可以分为两大类,模态对话框和非模态对话框,怎么对这两种对话框进行区分呢?简单来说,对于模态对话框,在未关闭之前,无法再对同一软件的其他窗口进行操作,即强制性用户交互;而非模态对话框与之相反,未关闭之前,依然可以操作同软件下的其他窗口,即非强制性用户交互。Qt中根据功能需求,可以分别对这两类对话框进行设置与构建。首先来看模态对话框,强制交互的模态对话框一经打开,程序的运行会进入阻塞状态,直至对话框关闭或触发其他动作。其简单部

2020-11-25 15:19:35 10

原创 QMainWindow添加资源文件

QMainWindow添加资源文件之前已经通过纯代码的方式添加了QMainWindow的菜单栏、状态栏、铆接部件及中心部件,现在使用Qt的设计模式直接添加菜单栏。菜单栏添加完成,再回到编辑模式,通过代码向 “文件-新建” 前面添加一个图标: // 通过ui可以找到所有的已添加控件 // 使用绝对路径的方式 ui->actionnew->setIcon(QIcon(/*图片路径*/));开发环境更换可能会导致绝对路径不可用,下面介绍向qt中添加资源文件:1、首先

2020-11-25 11:45:42 7

原创 QMainWindow菜单栏、工具栏、铆接部件及中心部件的添加和使用

QMainWindow菜单栏、工具栏、铆接部件及中心部件的添加和使用QMainWindow是一个用户提供主窗口程序的类,包含一个菜单栏、多个工具栏、多个铆接部件、一个状态栏及一个中心部件,是许多应用程序的基础,如文本编辑器、图片编辑器等。菜单栏菜单栏最多只能有一个,下面演示菜单栏的简单创建,包含头文件#include <QMenuBar> // 创建菜单栏 QMenuBar *bar = menuBar(); // 将菜单栏放入窗口中 setMenuBar

2020-11-25 10:21:53 19

原创 Qt使用lambda表达式实现无参信号与有参槽的连接

Qt使用lambda表达式实现信号与槽连接C++11中的Lambda表达式用于定义并创建匿名的对象,以简化编程工作,Lambda表达式的基本结构为:[函数对象参数](操作符重载函数参数)mutable->返回值{函数体}。其中函数对象参数,[]表示一个lambda表达式的开始,这部分必须存在,不能省略。函数对象参数是传递给编译器自动生的函数对象类的构造函数的。函数对象参数只能使用那些到定义lambda为止时lambda所在作用范围内可见的局部变量,包括所在类的this,函数对象参数有以下几种形式

2020-11-24 15:32:11 29

原创 Qt编程中的信号和槽机制

Qt编程中的信号和槽机制在使用自定义类创建一个按钮之后,只能看到一个按钮的图形,但是使用鼠标点击并无任何反应,下面想要实现一个“点击按钮可以关闭窗口”的功能。关闭窗口的功能可以被抽象为以下对象和操作,即:按钮,点击按钮,窗口,关闭窗口。在qt中使用connect实现这个过程。connet(信号的发送者,发送的具体信号,信号的接受者,信号的处理(槽))信号槽的一个优点:松散耦合,即信号的发送端和接收端本身是没有关联的,通过connect连接,将两端耦合在一起。// myself buttonMyP

2020-11-24 11:03:30 25

原创 Qt理解对象模型-对象树

Qt理解对象模型-对象树在Qt中创建对象的时候会提供一个Parent指针,QObject是以对象树的形式组织起来的,当创建一个QObject对象时,会看到QObject的构造函数接收一个QObject指针作为参数,这个参数就是parent,也就是父对象指针。这相当于,在创建QObject对象时,可以提供一个其父对象,此时创建的QObject会自动添加到其父对象的children列表中。(注意,这里的父对象并不是继承意义上的父类)当父对象析构的时候,这个列表中的所有对象都将会被析构。这种机制在GUI程序设

2020-11-23 16:34:04 23

原创 Qt Creator中按钮控件常用API

Qt Creator中按钮控件常用API使用QPushButton创建按钮引入头文件#include <QPushButton>后,使用QPushButton *btn = new QPushButton;使用btn->show();的方式对按钮进行显示,则会以顶层方式弹出窗口控件;如果想让btn对象依赖在myWidget窗口中,则需要在父类的构造函数中使用btn->setParent(this);。在按钮上显示文本btn->setText("button");在创

2020-11-23 16:33:24 36

原创 广义表与二叉树之间的相互转换

广义表与二叉树之间的相互转换二叉树是树形结构中一种特殊的树,其特点是每个结点最多只有两个孩子结点。二叉树除了可以通过典型的树状图来表示外,还可以使用广义表进行表示,例如:A(B,C)表示根结点A的左孩子结点为B,右孩子结点为C;A(,C)表示根结点A的左子树为空,右孩子结点为C。依此类推,可以将任何一棵二叉树以广义表的形式表示出来。广义表转化为二叉树广义表转化成二叉树可以借助栈来实现,利用栈先进后出的特点,先将根结点压入栈中,如果左孩子结点不为空,则将其作为栈顶结点的左孩子结点,并压入栈中,递归左子树

2020-11-17 17:17:05 546

VRRP实现网关冗余.rar

虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准。VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以及即使在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性。

2020-04-03

BGP综合实验.rar

通过BGP基本部署实现不同 AS 之间的网络通信。 根据网络拓扑进行IP地址规划,实现底层联通,并进行AS设计,运行BGP协议,实现AS之间的互联,并通告路由。

2020-03-28

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除