- 博客(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
windows下的记事本notepad程序
2018-01-22
通讯类demo.
2018-01-21
lua require报错.................
2018-07-02
lua中require编译失败
2018-07-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人