自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 资源 (2)
  • 收藏
  • 关注

原创 Qt D-Bus的简单应用

通过前面的介绍,相信对Qt D-Bus有了一定的了解,下面来实现一个简单的进程间函数调用的demo,对Qt D-Bus适配器和接口等进行详细的讲解和运用。我们先实现一个服务端进程DBus_Server,服务端代码如下: 注,要使用D-Bus需要在pro文件加上dbus即 QT += dbus定义接口文件:#ifndef CALHELLO_H#define CALHELLO_H#...

2019-07-02 17:49:54 1198 3

原创 Qt中的D-Bus工具

前言:在使用Qt D-Bus编程之前,还需了解Qt 提供的D-Bus工具,Qt IDE环境提供了两个用于D-Bus编程的小工具,分别是Qt D-Bus XML compiler 和D-Bus Viewer 。灵活运用这两个小工具能快速的实现接口调试和生成。另:因为D-Bus最初是为Linux设计,目前大部分Linux系统都采用了D-Bus来实现进程通信,所以在Windows系统下要使用D...

2019-06-21 16:51:53 1492

翻译 Qt D-Bus的数据类型系统

前言:众所周知,在高级语言编程中绕不开的就是数据结构和数据类型,D-Bus就具有一个可扩展的类型系统,它是基于数组和基本数据类型的组合。可以通过QDBusArgument类实现自定义数据结构的的接口,它允许用户通过总线发送和接收几乎所有的C++数据类型。且Qt D-Bus对C++的基本数据类型进行了底层封装,不需要自己实现基本数据类型的接口。本文根据Qt帮助文档翻译损益而成,具体细节可查看Qt...

2019-06-21 14:58:30 941

原创 Qt D-Bus介绍

前言:简单的说,进程间通信是一组编程接口,让程序员能够协调不同的进程,使之能在一个操作系统里同时运行,并相互传递、交换信息。同时一个程序可以是多进程,也可以是单进程,所以进程间通信也能实现软件间的通信服务。常见的进程间通信方式有:共享内存、Socket、管道、消息队列等;简介:D-Bus最初就是为Linux设计的一种进程间通信(IPC)和远程过程调用(RPC)机制,它采用了统一的协议进...

2019-06-21 11:08:04 1247

原创 Qt QHeaderView自绘实现表头双击编辑,和添加按钮

在做数据展示时,为了偷懒少布局些界面元素,结果后面发现某部分功能无法很容易的实现,然后想到了Qt提供了控件自绘功能。具体实现效果为:表头的双击弹出输入框改变表头名称,点击按钮退出应用,也可以自定义为QMenu菜单等显示方式(注:之前想到用委托结果,设置好委托后一直没有效果,最后查看文档发现这么一句Note: Each header renders the data for each sectio...

2019-03-31 14:43:41 3270

原创 大话设计模式第1章——简单工厂模式

简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。该模式中包含三个角色:工厂(Factory)角色简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。抽象产品(Pr...

2018-10-13 11:11:30 168

原创 Qt正则表达式检测IPV4地址和端口号

IP:QRegExp addressExp("\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b");Port:QRegExp portExp("^([0-9]|[1-9]\\d|[1-9]\\d{2}|[1-9]\\d{3}|[1-5]\\

2018-03-20 10:32:33 2427

转载 Linux下进程的创建

我们都知道,进程就是正在执行的程序。而在Linux中,可以使用一个进程来创建另外一个进程。这样的话,Linux的进程的组织结构其实有点像Linux目录树,是个层次结构的,可以使用pstree命令来查看。在最上面是init程序的执行进程。它是所有进程的老祖宗。Linux提供了两个函数来创建进程。1.fork()  fork()提供了创建进程的基本操作,可以说它是Linux系统多任务的基础。该

2017-12-13 19:34:19 308

转载 从窗口到视口的映射

从窗口到视口的映射         高中时我们学过垂直坐标系和极坐标系,同一个点在不同的坐标系里的坐标值是不一样的,比如垂直坐标系里的(1, 1)这个点,对应的极坐标却是(1.414, 45)。这两个坐标值可以通过一定的计算公式相互转换。我们把这里的垂直坐标系称为“逻辑坐标系”,其坐标值只是一个数值,是没有物理单位的,每一个逻辑单位可以代表1mm,也可以代表1m,还可以代表1个像素或者1/

2017-12-12 11:40:08 436

转载 Qt 全局热键的实现

QT全局热键的实现1、加载库 QT += gui widgets2、加载头文件#include"MyGlobalShortCut.h"````3、在main函数添加```C++ MyGlobalShortCut *shortcut = new MyGlobalShortCut("Ctrl+F9",&m); QObject::connect(shortcut,SIGNAL

2017-12-06 20:50:43 1458

原创 Qt:打印文档

功能:实现打印功能,导出为PDF格式文档要使用到打印功能,首先要在 .pro 文件添加如下一行代码:QT += printsupport下面给出实现头文件:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include #include #include #include #in

2017-11-20 22:40:28 1267

原创 Qt:自定义拖放操作

功能:实现在一个窗口中任意拖动图片;头文件:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include #include namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OB

2017-11-20 10:59:08 576

原创 使用拖放打开文档

Qt提供了强大的拖放机制,可以在帮助中通过Drag and Drop 关键字查看 ,拖放操作分为拖动(Drag)和放下(Drop)两种操作,当数据拖动时,会被存储为MIME(Multipurpose Internet Mail Extensions)类型。Qt中使用QMimeData类来表示MIME类型的数据,并使用QDrag类来完成数据的转移,而整个拖放操作都是在几个鼠标事件和拖放事件中完成的。

2017-11-19 16:39:10 337

转载 轻松学习正则表达式

继续把我在个人博客上新翻译的文章投递到博客园来,这次是有关正则表达式的,很基础,主要是让读者把握住正则表达式中的3种括号的用法,用这3种括号几乎可以涵盖所有的正则式。写在最前面前两天我从CodeProject上翻译了一篇关于Javascript的文章《Javascript中的陷阱大集合》,初次翻译技术文章,可能有很多地方需要改进,我个人觉得最好的改进办法就是继续去翻译其他文章,取长补短,积

2017-11-13 10:01:37 242

原创 Qt:音乐播放器

整体可拖动窗口:声明://整体可拖动窗口 void mousePressEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event);定义:void MainWindow::mousePressEvent

2017-11-01 15:15:29 798

转载 C++中模板类map常用示例

#include #include using namespace std; int main() { /************************************************************************/ /* map的常用方法示例

2017-10-31 21:42:13 588

原创 Qt:自定义进度条

头文件:floatwindows.h#ifndef FLOATWINDOWS_H#define FLOATWINDOWS_H#include #include class FloatWindows : public QWidget{ Q_OBJECTpublic: explicit FloatWindows(QWidget *parent = 0);

2017-10-29 16:59:02 846

转载 QT中QPainter的使用及矩形、圆形等常见图形的画法

转载地址:http://blog.csdn.net/zcf1002797280/article/details/7885651#includeQApplication>#include QWidget> #include QPainter> class MyMainWindow:public QWidget{ public:  MyMainWindow(QWidge

2017-10-29 16:55:53 3323

原创 Qt:.ini的读写

.ini 文件是Initialization File的缩写,即初始化文件。是windows的系统配置文件所采用的存储格式,INI文件由节、键、值组成。写操作:// QString filename = QFileDialog::getSaveFileName(this,"Save"); // QString txt = ui->plainTextEdit-

2017-10-28 09:38:46 302

原创 Qt中关于XML的读写应用

XML的操作有两种方法,即DOM方式和SAX方式。二者主要区别是:DOM实现方式操作非常简单,但不适合处理过大文件;而SAX实现方式是能处理很大的XML文件,但是需要开发者写一些复杂的代码。Qt提供了对应于这两种用于读取、操作和编写XML的实现类,分别是QDomDocument类和QXmlStreamReader类。XML格式常用于文件配置,而JSON格式常用于数据传输;XML因为格式规定的限

2017-10-27 19:58:47 380

原创 编程实现约瑟夫环问题

据说著名犹太历史学家Josephus有过以下故事:在罗马人占领桥塔帕特后,39个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被人抓住,于是决定了一个自杀方式,41个人排成一个圆圈,由第一个人开始报数,每报数到3的人就必须自杀,然后再由下一个人重新报数,直到所有人都自杀身亡为止。然而Josephus及他的朋友并不想遵从,Josephus要他的朋友假装遵从,他将

2017-10-24 08:42:57 983

原创 Qt:播放动态gif图片

QMovie类是一个用于播放动画。在刷新页面的时候,可以尝试用QMovie 来实现等待界面,或图标切换QMovie类用于显示简单的动画,没有声音。可以调用函数isValid()来检测在动画开始播放前,动画是否有效。调用start() 函数开始播放动画,QMovie将进入运行状态,并发射started() 和 stateChanged()信号。函数state() 可获取当

2017-10-23 14:45:22 3866

原创 Qt:整体可拖动窗口

头文件:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit Mai

2017-10-23 11:32:35 1941

原创 ini格式相关

头文件:GBK.h(格式转换)#ifndef GBK_H#define GBK_H#include #include #include #include #include #include #include #include #include #include using std::string;class GBK{public: static st

2017-10-23 09:37:33 315

原创 Qt:系统托盘图标

实现功能:1.关闭窗口时,不退出,而是隐藏在系统托盘。2.系统托盘图标单击或双击显示窗口,右键退出。头文件:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include #include namespace Ui {class MainWindow;}class MainWindow

2017-10-20 09:02:40 571

原创 单例模式

一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。具体实现角度来说:一、单例模式的类只提供私有的构造函数,二、类定义中含有一个该类的静态私有对象,三、该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象。

2017-10-19 14:30:13 233

原创 Qt:开启拖动项

头文件:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QW

2017-10-16 19:12:16 314

原创 Qt:接受拖放,简单应用

头文件:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include //包含GUI界面的相关函数namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic

2017-10-16 16:40:03 312

原创 Qt:TreeWidget中添加子控件,并在主窗口接收响应

头文件:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include #include namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: ex

2017-10-15 18:06:30 3009

原创 Qt:TreeWidget(树控件)的简单操作

实现的功能:1.搜索文件夹中指定类型的文件并显示在GUI界面上 2.选中勾选框,打印选中的文件名;头文件:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include #include #include #include #include #include namespace Ui

2017-10-15 15:49:37 3340 1

原创 Qt:原位编辑(QStyledItemDelegate类的应用)

头文件:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include #include #include "mydelegate.h"namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{

2017-10-15 09:12:55 957

原创 Qt:Model/View架构的简单使用

注:Model/View架构使用要继承QStyledItemDelegate 类,类型选择为Widget;头文件:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include #include #include #include "myitemdrawer.h"namespace Ui

2017-10-14 16:23:49 809

原创 Qt实现截图选择框(仅实现选择框创建,非完整的截图功能)并发射信号给调用的槽函数

头文件:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include "mywidget.h"namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic:

2017-10-07 18:11:08 936

原创 Qt实现正弦曲线图(类似示波器功能)

写在前面:因为Qt的GUI界面坐标和数学坐标系不同,所在显示时要进行坐标转换,GUI界面是以左上角为原点坐标的头文件:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include namespace Ui {class MainWindow;}class MainWindow : public QMain

2017-10-07 10:38:06 12883 21

原创 使用Qt的鼠标支持,模拟实现粗略的画板连线

头文件:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include "qshuwidget.h"namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic:

2017-10-05 16:26:39 1120

原创 使用Qt中的工作线程,模拟上传文件(需要用到定时器,线程知识)

头文件:GBK.h#ifndef _QT_GBK_H#define _QT_GBK_H#include #include #include using std::string;class GBK{public: // QString(Unicode) -> std::string (GBK) static string FromUnicode(const QStr

2017-10-04 17:02:03 549

原创 Qt定时器的应用,实现时钟的状态

Qt有两种定时器,一种是QObject类,另一种是QTimer类。(1)QObject类提供了一个基本的定时器,通过函数startTimer()来启动,通过killTimer()来结束,通过QTimerEvent来处理定时器事件startTimer(int interval)启动一个时间间隔为interval毫秒的定时器,返回一个定时器标识符,如果未能启动成功,则返回0。该定时器只

2017-10-03 17:27:17 1224

原创 Qt 实现简易的学生信息管理文档

头文件:mianwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include #include #include #include #include #include #include #include "student.h"#include "teacher.h"#include "coll

2017-09-30 12:46:44 616

原创 简单工厂模式实现粗略的四则运算

头文件:Factory.h#ifndef FACTORY_H#define FACTORY_H#include "product.h"class Factory{public: Factory(); Product *getProduct(enum Type type);};#endif // FACTORY_HProduct.h#ifndef

2017-09-29 16:03:00 693

原创 C语言实现,顺序队列,循环队列,和栈!

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故

2017-09-29 15:35:21 1710 1

Qt:简单音乐播放器

基于Qt的简单音乐播放器,实现了基本功能和XML格式的历史记录的读取与配置,部分功能还未有实现,新手之作

2017-11-02

简易学生信息管理文档

简单的信息管理文档,功能不是很完善,练手之作,提供参考

2017-10-26

空空如也

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

TA关注的人

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