自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(121)
  • 资源 (4)
  • 问答 (2)
  • 收藏
  • 关注

原创 Qt学习: 鼠标追踪及自定义工具栏.(以美图看看为例)

在主窗口中,除了自带的一个主工具栏,还可以在其他位置放置自定义的QToolBar.但是你会发现,ui页面的mainToolBar的初始位置只能是上下左右四个位置,这里说的是初始位置,因为只要设置了floatable和movetable这两个属性,就可以拖动到指定位置,但如果要实现初始就要在某一特定位置的话,只能够重新定义一个工具栏.//"c.cpp"内的代码:#include "c.h"c::c(

2017-12-01 21:10:24 1062 1

原创 Qt实现任务栏中的托盘图标的功能.

看我们电脑最下面一行的任务栏,会发现有一些软件被关闭后,还会继续存在任务栏中,当点击任务栏中的图标时,又会跳出来这个软件的画面,主要用到了Qt中的QSystemTrayIcon这个类,下面我们来简单的展示下实现的方法://"c.cpp"的代码:#include "c.h"c::c(QWidget *parent) : QMainWindow(parent){ ui.setupU

2017-11-29 19:03:35 1828

原创 Qt实现右键菜单的五种方法!(以QListWidget为例)

学习了Qt很久,下面总结了5种实现右键菜单的方法(以QListWidget为例): 下面5种方法选其一即可.当然越简单越好啦! 1.重写QListWidget的virtual void mousePressEvent(QMouseEvent *event);鼠标点击函数. 2.重写QListWidget的virtual void contextMenuEvent(QContextMenuEv...

2017-11-27 21:12:10 28500 7

原创 Qt实现窗口整体拖拽功能.

我们都知道,当我们鼠标点击并移动应用程序的上边框时,窗口才会整体移动,但有些窗口,你点击移动其他部分,也可以让窗口跟着鼠标移动,这里就教你如何整体移动窗口.其实实现这样的功能很简单,只需要重写以下的3个鼠标函数即可.//"c.h"#ifndef C_H#define C_H#include <QtWidgets/QWidget>#include "ui_c.h"...

2017-11-26 23:04:00 11924 13

原创 STL常用算法: fill,rotate,rotate_copy.

fill算法用来填充容器,当然创建容器的时候,也可以达到与fill算法一样的效果.#include <iostream>#include <vector>#include <algorithm>using namespace std;//fill算法的手动实现.template <typename T, typename V>void myFill(T first, T last, co

2017-11-25 14:05:49 289

原创 子类化QListWidget实现自定义拖拽功能.

我们经常会碰到这样的一个问题,我们想把其他地方选中的文本,直接通过拖拽移动到一个控件中,从而实现方便添加项的功能. 这里我们以QListWidget作为例子,来实现这么一个功能:其他地方的文本可直接拖拽进QListWidget中,且QListWidget部件中的文本可相互拖拽,也就是可以从QListWidget中拖拽项到另外一个QListWidget中,实现拖拽项的功能.首先我们对QListWid

2017-11-25 11:52:23 10893 4

原创 STL通用算法: iter_swap,reverse,reverse_copy,advance算法

在学习C语言时,当我们需要互换两个数的时候,我们会这么写,或者通过指针去写.int temp = a;a = b;b = temp;所以在STL中针对互换容器内的元素时,就有了iter_swap基础算法,就是用来互换两个指针所指向内容的方法.#include <iostream>#include <algorithm>#include <vector>#include <functiona

2017-11-22 16:51:09 417

原创 STL通用算法: for_each,c++11标准范围for,transform.

之前的算法都用到了for_each算法把容器内的元素输出到屏幕上,所以今天讲讲for_each这个算法,还有和它功能类似的范围for的用法.#include <iostream>#include <algorithm>#include <vector>using namespace std;template <typename T>class Print{public: void

2017-11-17 20:14:20 232

原创 STL常用算法: remove,remove_if,remove_copy,remove_copy_if,remove系列算法和partition的区别...

下面我要介绍的是STL算法中,用来进行按条件除去容器内元素的通用算法,也就是所有容器都适用的方法.#include <iostream>#include <algorithm>#include <functional>#include <list>using namespace std;template <typename T>class Print{public: void

2017-11-15 13:55:52 793

原创 STL常用算法: replace.replace_copy.replace_if.replace_copy_if

在STL中,我们可以用算法把容器内的一些元素进行替换,这里就用到了replace系列的算法.首先是最简单的replace算法.#include <iostream>#include <vector>#include <algorithm>#include <functional>using namespace std;//模板输出类.template <typename T>class

2017-11-13 13:06:49 368

原创 STL常用算法: distance实现,count_if算法实现,bind2nd的使用..

前面讲到用distance算法来返回两个迭代器之间的距离.下面给出实现:template <typename T>int myDistance(T a, T b){ int distance = 0; if (a <= b) { while (a != b) { distance++; a++

2017-11-09 20:35:29 738

原创 lua: 运算符易错点: and or 连接符'..'

在C++中,&&表示并且,||表示或. 而在lua中用 and表示且, or表示或.然而还是有一些小伙伴搞不清楚lua中的用法…我将在下面进行举例说明,看完例子,你基本完全懂了.. 首先,你必须要知道: 在lua中,只有false和nil是false,其他一切都是true的.包括0,NULL都是true…1.and示例:--直接输出.print((5>3 and 5)); --结果为5.因为

2017-11-08 21:48:57 3008

原创 STL常用算法: max_element,min_element, distance以及手动实现.

今天主要讲解如何在容器中找到最大元素或者最小元素的方法,就不用我们手动去写函数来找到最值的大小和位置啦~.//头文件!不要忘啦,否则编译不能通过的.#include <iostream>#include <algorithm>#include <functional>#include <vector>using namespace std;int main(){ vector<i

2017-11-08 20:51:42 2257

原创 STL简介

学C++,必须也要学会使用STL,STL全称standard template library,也就是所谓的标准模板库,它包括了容器,也就是我们学习数据结构时自己手写的链表,栈,队列等等,当然栈和队列只是在原有链表或者deque的基础上砍掉了某些东西而形成的一种结构,在STL中,它不属于容器的范畴,而是属于配接(adapters). 我们可以很明显的从STL中看到什么叫做泛型,泛型编程是如何的,而

2017-11-08 20:14:22 422

转载 Windows7下使用VS2015搭建Lua开发环境

首先进入lua官网,下载最新版本的lua源码。 这里我将文件解压放到D盘,D:\lua-5.3.1就是该目录。二、启动VS2015创建新的项目1、选择【文件】—>【新建】—>【项目】,选择Win32里面的Win32控制台应用程序,这里我设置名称为Lua5.3,其他配置参数不变,点击【确定】按钮。2、在应用程序设置向导里面,选择类型为【静态库】,然后点击【完成】即可,如图所示。3、创建好项目后,在【

2017-11-01 20:05:55 590

原创 Qt学习: 给程序添加快捷键事件的几种方法介绍

不管在玩游戏,还是使用软件时,我们都可以看到,几乎都带了快捷键来操作这个软件,或者游戏,那么如何在程序中去实现这个功能呢?我将在下面介绍三种常用的方法.第一种方法:第一种方法就是重写键盘事件的虚函数.virtual void keyPressEvent(QKeyEvent *event);//重写键盘事件.//别忘了头文件<QKeyEvent>void c::keyPressEvent(QKe

2017-11-01 19:49:13 6963

原创 ANSI C标准库: <ctype.h>下函数讲解

小伙伴们注意了!ANSIC标准库的函数在C++中一样可以使用,在C++中,使用ctype.h和cctype头文件是一样的.都可以使用原库中的所有函数!ctype.h下重要函数 1->int isalnum(char); //判断是否为字母或数字,如果为字母,返回2,如果为数字,返回4,否则返回0. 2->int isalpha(char); //判断是否为字母,如

2017-10-28 11:15:33 435

原创 STL: vector容器成员函数resize的作用

#include <iostream>#include <vector>#include <time.h>#include <algorithm>#define SIZE 5000000using namespace std;class A{public: int operator()() { return x++; } static i

2017-10-26 23:20:27 627

原创 STL: string和vector的容量变化

我是在vs2013下所做的测试,实验结果可能和在vc6.0或者其他编译器上有所不同.当string的元素个数<=15时,容量恒为15,当新元素增加等导致容量增加时,取原容量的1.5倍和原容量+16的一个倍数作比较,取大值.那么这个倍数怎么取呢?只要原容量一次次的增加16,当数值大于所需新容量时即可.string容量第一个例子:#include <iostream>#include <string>

2017-10-26 22:55:28 538

转载 Qt学习: 鼠标事件总结(转)

1、QMouseEvent中的坐标 QMouseEvent中保存了两个坐标,一个是全局坐标,当然另外一个是局部坐标。 全局坐标(globalPos())即是桌面屏幕坐标(screen coordinates),这个跟windows下的调用getCursorPos函数得到的结果一致。 局部坐标(pos())即是相对当前active widget的坐标,左上角坐标为(0, 0)。补充一个公式:

2017-10-24 19:30:15 799

原创 Qt学习: QPaintEvent和QMouseEvent的简单程序示例

QMouseEvent下可以被重写的虚函数: 1.void mousePressEvent(QMouseEvent *event); //鼠标键被按下的事件. 2.void mouseReleaseEvent(QMouseEvent *event); //鼠标键被放开的事件. 3.void mouseMoveEvent(QMouseEvent *event); //按住鼠标键移动的事件.

2017-10-21 19:10:26 6848

原创 Qt学习: 如何在Qt中使用全局变量!出现无法解析的命令的问题看过来!!

很多小伙伴在Qt编程时,不会使用全局变量,其实基本有两种方式来定义使用全局变量,第一种是根据c/c++的extern来进行多文件的使用,第二种方法就是把全局变量放在类中,当做类静态变量来使用,一般来说,第一种方式严重破坏了类的封装,所以还是推荐第二种方式.下面给出简单的示例:1.先在一个.h文件中声明一个类://c.h#ifndef C_H#define C_Hclass QPos{pu

2017-10-19 18:30:02 3355

转载 Qt Designer中自定义控件的使用(提升法与插件法)

准备乱写一点Qt自定义Widget在Designer中的使用。可是又不想重复提升法(promotion)及插件法基本用法,因为Manual中Using Custom Widgets with Qt Designer已经说的很清楚了。 使用designerQt用户可能会经历这样的3个阶段: 刚接触Qt,在designer中拖拖拽拽,一个界面就形成了。相当方便(不过不少人网友初次接触时对layout

2017-10-17 19:47:14 3211

原创 Qt学习: QStackedWidget和手工代码布局的程序实例

重要函数: 1.void setCurrentIndex(int); //用下标显示当前页,.从0开始. 2.int count(); //返回页面的数量. 3.void insertWidget(int, QWidget*); //在下标为参数位置插入页. 4.void addWidget(QWidget*);

2017-10-17 08:45:19 1461

原创 Qt学习: QTabWidget多页面部件的用法及程序示例

*重要函数:* 1.void setTabText(int, QString); //设置页面的名字. 2.void setTabToolTip(QString); //设置页面的提示信息. 3.void setTabEnabled(bool); //设置页面是否被激活. 4.void setTabPosition(QTabPosition::South); //设置页面名字

2017-10-15 14:58:05 6960 1

原创 ANSI C标准库: <time.h>下函数讲解

//time.t下的函数.#include <iostream>#include <time.h>#include <windows.h>#include <vector>using namespace std;#pragma warning(disable:4996)//重要函数./*1.time_t time(0); //返回的是从1970.1.1凌晨0点到当前时间的

2017-10-14 11:14:58 397

原创 Qt学习: QCloseEvent关闭事件的使用及代码示例

QCloseEvent事件是指,当你鼠标点击窗口右上角的关闭按钮时,所触发的函数.如果你没有重写virtual closeEvent(QCloseEvent*event);这个虚函数的话,系统是默认接受关闭事件的,所以就会关闭窗体,但有的时候,比如在记事本程序中,但你的文本未保存时,点击关闭按钮,就会跳出是否保存的提示框,这是因为它重写了关闭事件这个虚函数.首先用Qt设计师拖拽一个QTextEdit

2017-10-14 09:22:27 25720 1

原创 Qt学习: QTimerEvent定时器事件的处理程序代码示例

重要函数: 1.int startTimer(int); //设置定时器,返回一个ld. 2.int event->timerld(); //返回当前的ld. 3.void killTimer(int); //停止定时器.首先从Qt设计师中拖拽出三个按钮,由于只是演示定时器事件的使用,所以就没有布局的需要了. 以下是”c.cpp”的代码:#include "c.h

2017-10-12 19:18:40 11819

原创 Qt学习: QPixmap实现的截屏程序代码示例

重要函数: 1.bool isNull(); //判断图片是否为空白. 2.bool save(QString); //图片保存到参数的路径. 3.QPixmap grabWidget(WId,x=0,y=0,w=-1,h=-1); //截取图片. 4.void scaled(QSize); //把图片按比例缩放.下面是一个简单的截图器的示例代码:

2017-10-12 13:52:40 3881 1

原创 Qt学习: 教你如何打包一个Qt程序

当我们用Qt写好一个小程序,或者软件之后,怎么样打包才能让解压包发给其他小伙伴,而且能够正常运行呢?首先打开你写的程序,选择release,然后运行. 由于缺少dll文件,所以不能正常编译运行. 我的电脑是win8.1,所以去这里找到这个命令行.因为我使用VS2013的,所以命令行的命名为Qt 5.3 32-bit for Desktop (MSVC 2013 OpenGL).小伙伴们可以在菜单

2017-10-07 14:54:35 2107 2

原创 Qt学习: QFileDialog和QMessageBox的用法和程序示例

*QMessageBox的用法: members: 1.void setStandardButtons(QMessageBox::); //设置按钮. 2.void setText(QString); //设置内容. 3.void setInformativeText(QString); //设置重要内容.位于对话

2017-10-07 10:09:52 1364

原创 Qt学习:QLabel的用法及其程序示例

主要成员函数:1.void setText(QString); //设置label框内的文本. 2.void hide(); //隐藏label框. 3.void setBuddy(QWidget*); //把另一个部件

2017-10-05 12:02:52 32582 1

原创 Qt学习:QLineEdit的程序示例

学习了上一篇博客关于QLineEdit的一些重要的成员函数和信号的用法之后,我们写一个小程序来熟练下这些函数.这里是程序完成后的图片. 首先,我们现在ui设计师里拖拽出以下的布局: 注意箭头处还有个QLabel部件. 以下是”c.cpp”下的代码:#include "c.h"c::c(QWidget *parent): QWidget(parent){ ui.setupUi(thi

2017-10-03 15:35:41 2018

原创 Qt学习:QLineEdit的用法总结

在使用Qt编写软件时,QLineEdit这个部件经常会被用到,大部分用在登录界面的输入框,所以这个部件非常的重要.常用成员函数: 1.void setClearButtonEnabled(bool); //是否设置一个清空按钮. 点击这个清空按钮后,就会自动删除行编辑框内的所有内容,类似于clear(). 示例如图: 2.void setEchoMode(QLineEdit::Ech

2017-10-03 14:55:46 18658

原创 Qt学习:VS中使用Qt出现的常见问题:QDebug和QPrintDialog的使用.

在VS中常常会有小伙伴不知道如何使用QDebug和QPrintDialog.下面我用VS2013来教你们如何去操作.QDebug 相信很多小伙伴们发现在qt creator中使用qDebug()是可以轻易的输出在下面的,但是在vs中在程序明明没有错误的情况下,却没有地方去显示它,感到很奇怪,其实很简单.首先鼠标右键点击项目,选择属性. 然后点击配置属性->链接器->系统.找到子系统. 最后把子

2017-10-02 20:20:39 3552

原创 Qt学习: QListWidget程序示例

学习了上一条博客的关于QListWidget的成员函数的用法,下面就有一个相关的简单小程序来练下手: 程序完成如下图: 第一步,我们先通过ui设计师拖拽出我们想要的布局: 下面是”c.cpp”下的代码:我将逐句讲解:#include "c.h"c::c(QWidget *parent) : QMainWindow(parent){ //应用ui设计师布局. ui.se

2017-10-02 16:24:40 3594 2

原创 window常用命令(一)

cmd是command的缩写.即命令行,在9x系统下输入command就可以打开命令行.而在NT系统上可以输入cmd来打开,在windows2003后被cmd替代,利用CMD命令查询系统的信息或者是判断网络的好坏. 我将从简到难的,以20个为一组进行更新,帮助小伙伴们更好的去记忆.最后还有一些简单的快捷操作喔.CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件

2017-10-02 11:00:14 1101

原创 Qt学习: QListWidget的用法.

QListWidget类重要的函数: 1.void addItem(const QWidgetItem*); //加入一个项.需要自己先创建一个项的对象. 示例如下:QListWidgetItem *ite = new QListWidgetItem;ite->setText(QString::fromLocal8Bit("杭州"));ui.listWidget->addItem(ite

2017-09-30 20:22:44 7390 2

原创 Qt 类中Q_OBJECT的作用及其程序代码体现

Qt中类里为什么要加上Q_OBJECT这个东西呢,原来这是一个Qt定义的宏.它的作用是什么呢? 原来这个宏中包含了Qt中最重要的一个机制:也就是信号和槽的机制.所有的Qt程序一定会使用这个机制!下面我们可以先看一个简单的小程序,一个类似于图片加载器的小程序.以下是先用Qt设计师简单拖拽出来的一个没有经过布局的图片:我拖拽了一个QLabel框,两个QPushButton,并且给他们改过了对象名.以下

2017-09-28 16:02:21 7438 1

原创 VS2013如何创建一个Qt程序

1.首先打开VS2013,然后点击新建项目.2.然后在左边的模板选择”Qt5 Projects”, 然后在右边选择”Qt Application”**3.然后在位置处选择你要创建到的路径,名称处的话,中英文都可以,但是最好用英文,然后点击确定就创建了一个Qt的项目.4.然后跳出来一个这样的创建界面.–5.第二项也可以保持默认.6.第三个选项,className就是你之前创建的名字,但它在Qt中是要作

2017-09-26 15:36:10 4376

QLabel示例

https://blog.csdn.net/qq_37233607/article/details/80325068的示例.

2018-05-15

windows下的记事本notepad程序

windows系统下的自带notepad记事本,且在原有的所有基础上新增加了其他的功能,详情可以现在博客中 http://mp.blog.csdn.net/mdeditor/index/79134132 进行效果预览,如果觉得可以的,可以进行下载使用!

2018-01-22

通讯类demo.

一个有着通讯类功能的demo,具体效果可以在博客观看,在确定是否进行下载:http://mp.blog.csdn.net/mdeditor/index/79119867

2018-01-21

图片旋转特效示意源码

当我在火影中文网准备看动漫时,突然发现以下的场景,于是我也想做一个类似的效果. 在Qt中实现图片的旋转等效果.

2018-01-20

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

TA关注的人

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