QT学习之路
小K小Q
自律,勤奋
展开
-
QT5 做安装包如何拿到正确的动态库
1.首先生成一个发布版本的exe文件。并把它放在一个空的文件夹下面, 比如放在测试文件夹下面。比如,这个文件名字为CGE101.exe2.在测试文件下面,写一个批处理文件。 命名为test.bat.3.修改批处理文件里面的内容。D:\Qt\Qt5.7.0\5.7\mingw53_32\bin\windeployqt.exe CGE101.exepause上原创 2017-01-14 11:38:56 · 1054 阅读 · 0 评论 -
QT 处理中文乱码的问题
QT由于跨平台性很强,一份代码,多处编译,到处运行的特点也导致容易在不同平台出现乱码,这里的处理方法可以用。#include <QTextCodec>QTextCodec::setCodecForLocale(QTextCodec::codecForName("gb2312"));这里的gb2312 是它的其中一种字符编码,我们可以根据不同的平台,选择不同的编码。原创 2016-03-23 23:20:53 · 420 阅读 · 0 评论 -
QT5 OPenGL(一)
概要QT5 需要加的模块实例运行效果图实例代码部分函数接口的解释glLoadIdentityglBeginglVertex3f x y z glViewport 0 0 GLintwidth GLintheight glMatrixMode glLoadIdentitygluPerspectiveGLdouble fovyGLdouble aspectGLdouble z原创 2016-04-06 00:10:15 · 12228 阅读 · 14 评论 -
QT 模拟点击网页
概要QWebView 的对象生成获取网页标签给输入框赋值setAttribute进行赋值直接赋值通过JS 模拟一次点击事件概要QT 客户端与网页交互的过程中,总是有很多值得我们学习的地方。 而QT模拟点击网页,也是很重要的内容之一, 这里所说的QT模拟点击网页就是获取到网页上的对应的标签,然后再进行我们想要的点击操作。如点击标签,或者提交登陆。QWebView 的对象生成。 m_b原创 2016-03-22 23:01:48 · 5543 阅读 · 4 评论 -
QT 对网址的解析和组合
首先值得一提的是:QT5 以下和以上是有所不同的。然后, 为什么要解析和组后网址?当我们的客户端软件里面嵌入网页时,在与网页交互的过程中, 比如说,单击客户端嵌入的网页上的某个按钮时, 我们客户端需要做处理时, 这时就需要知道网页端,到底想让我们做什么处理。我们需要拿到, 或者能拿到些什么参数来处理。比如说,我单击网页后,通过绑定 下面的信号与槽(linkC原创 2016-02-25 15:36:15 · 3404 阅读 · 0 评论 -
QWebview 控件直接拉上去不能通过编译的问题。
有时做项目或写deom 测试时,需要用到QWebview, 然而, 当我们把QWebview控件拉到窗口上,编译运行时却出现了编译不通过的问题。 出现类似下面的问题: widget.obj:-1: error: LNK2019: 无法解析的外部符号 “_declspec(dllimport) public: void __thiscall QWebView::setUrl(class QUrl c原创 2016-03-21 17:47:55 · 1013 阅读 · 0 评论 -
QT QVector<QPair<QString, qint64>> qSort 排序
QT的算法与容器之类的与存C++有一些区别。头文件:#include //这个用于qt排序算法qSort的。#include //这个是用于QT QVector容器的纯C++用的是#include #include 所以QT里面的叫法也不一样,C++叫STL, 而QT叫QTL现在直接讲QT一个排序实例吧:头文件(.h)的两个原创 2016-02-24 15:30:20 · 9289 阅读 · 0 评论 -
QT 按钮控件设置快捷键
概要QT按钮主要有QToolButton 和 QPushButton, 它们很多时候都需要设置快捷键, 这样用户操作起来就更为方便。 设置快捷键的方式是有几种的,下面总结了一下, 项目中,使用时,就看怎么方便,快捷怎么使用吧。使用keyPressEvent 函数进行按按事按捕获使用方法头文件里重写事件:virtual void keyPressEvent(QKeyEvent* event);cpp文原创 2016-04-01 00:15:33 · 21935 阅读 · 0 评论 -
QComboBox 右侧下拉按钮qss样式设置
//下面是下拉按钮部分属性的设置。QComboBox::drop-down {subcontrol-origin: padding;subcontrol-position: top right;width: 30px;border-left-width: 0px;border-left-color: gray;border-left-style: solid;bor原创 2016-03-17 18:12:14 · 20975 阅读 · 1 评论 -
信号与槽连接时不能带形参,但数据类型要保持一致。
connect(m_mediaService, SIGNAL(getmathFinished(const Command::GetMediaParam& param, const Command::GetMediaResult& result)),this, SLOT(slotGetmathFinished(const Command::GetMediaParam& param, const原创 2016-02-18 16:58:44 · 648 阅读 · 0 评论 -
QT Json解析方法
QT 与WEB的交互,大部分就是客户端与网页的交互,有时,我们需要得到服务器返回的具体的数据,就通过客户端与网页交互的过程中拿到所需要的参数,在我的另一篇博文中有讲到过http://blog.csdn.net/li235456789/article/details/50737777 怎么去获取网页返回的链接里面对应的每个参数。 再通过这个参数, 我们使用http协议,用get或者post 方式把进原创 2016-02-28 10:57:55 · 3834 阅读 · 1 评论 -
QT5 OPenGL(二,平面图形上色)
概要效果图主要代码重点解析概要这篇文章是在上一篇的基础上添加的,这样的目的是让学习的人,可以分模块地学习对应的功能,不需要一次性阅读所有的代码。上一篇的博客地址为: QT5 OPenGL(一) http://blog.csdn.net/li235456789/article/details/51069461效果图主要代码void OpenglWidget::paintGL(){原创 2016-04-06 10:00:35 · 1689 阅读 · 0 评论 -
QT5 OPenGL(三, 图形旋转)
概要实例效果图主要实现代码关键点解析概要图形旋转在很多游戏里面,或一些需要特效的场合用得比较多,一个动态的图形图片是比静态的有更好的动态效果的。实例效果图主要实现代码void OpenglWidget::initializeGL(){ glShadeModel(GL_SMOOTH); glClearColor(0.0, 0.0, 0.0, 0.0); glClearD原创 2016-04-06 11:44:42 · 2963 阅读 · 0 评论 -
QT + vs 运行的项目出现控制台的解决办法
我们写dome或者做项目时,有时有UI界面时,就不想运行控制台, 这种最好的方式就是在开始建工程时,就不要选Console, 如果是选择了后面有什么处理方法呢?需要进行两步的处理。1.在需要启动的项目右键 -> 属性 -> 系统 -> 子系统 选择windows 这里原来应该默认的是console2.在需要启动的项目右键 -> 属性 -> 高级 -> 入口点 输入 mainCRTSta原创 2016-04-17 11:22:35 · 7447 阅读 · 2 评论 -
QT5 for android 实现横屏锁定
首先要找到AndroidManifest.xml 这个文件,如果没找到 则需要手动新建, 这个默认是不会创建的, 我们设置qt for android app图标时,也需要这个文件。手动创建自动生成这个AndroidManifest.xml 这个文件, 我所说的是QT5的版本, 至于其它版本,暂时也没有深究过。手动创建的流程为:顺便提一下更改app图标如上图所示,当我们创建了AndroidMa原创 2016-04-10 16:07:29 · 4270 阅读 · 0 评论 -
QT5 Opengl (八,绘制雾的效果)
概要效果图第一种样式的雾第二种样式的雾第三种样式的雾深度比较低的雾淡红色的雾在原来基础上加的代码重点解析概要在一些场景里面,我们有时雾要一些雾的衬托,这样就会让场景看起来更真实一点。这篇文章就是主要讲怎么绘制出雾的效果。效果图第一种样式的雾第二种样式的雾第三种样式的雾深度比较低的雾淡红色的雾在原来基础上加的代码.h文件#ifndef OPENGLWIDGET_H#define OP原创 2016-04-08 23:22:40 · 2087 阅读 · 0 评论 -
QT5 OpenGL(七, 透明度设置)
概要效果图正常立体图透明度为05的透明度为01的图形设置为绿色时部分代码的更改概要我们在做与UI或者图形,图片有关的项目时,总会遇到透明度的设置。 opengl也有自己的透明度设置。 值得一提得是,普通的平面图形透明度设置是改变单张平面的显示效果, 而立体图形的呢,这就会使多个平面的图形出现。效果图正常立体图透明度为0.5的透明度为0.1的图形设置为绿色时部分代码的更改void Open原创 2016-04-08 18:14:56 · 8456 阅读 · 1 评论 -
QT5 OpenGL (六, 键盘事件, 开关灯,放大缩小综合运用)
概要实例效果图立体图放大图立体图缩小图不加矢量开灯图不加矢量关灯图加矢量关灯图1加矢量关灯图2部分代码展示主要内容解析QT键盘事件立体图形的放大和缩小上下左右键以及A键D争键控制x y z 轴旋转速度的快慢开灯关灯以及矢量的实现原理概要多篇讲QT5 opengl的文章,从简单到复杂,几乎每篇都在原来的基友上有所增加新的内容, 感觉越到后面,越容易被opengl强大的功能所震原创 2016-04-08 11:59:48 · 6731 阅读 · 1 评论 -
QT5 OpenGL(五,立体图形贴图)
概要效果图展示以y轴为中心旋转图1以y轴为中心旋转图2以x轴为中心旋转图1以x轴为中心旋转图2以x轴为中心旋转图1部分代码主要内容解析相对于立体图形的直接绘图即单一的色彩 添加了的代码立体图形贴图坐标的计算和转换概要上一节,我们已经实现了立体图形每个面填充颜色,这样就显得很单调, 而如果用图片替换这种单调的颜色,这样就会让立体图形显得更为深动。效果图展示以y轴为中心旋转图1以y轴原创 2016-04-08 00:50:07 · 3533 阅读 · 3 评论 -
QT异形图形的开发
这里的异形图形是指哪种原图处理后效果原代码部分说明这里的异形图形是指哪种?这里所谓的异形图形是指非正方形或矩形这种规则的图形。 因为,QT普通的一个Dialog或widget生成的一个窗口就是一个矩形或正方形,如果要显示不规则图形,该怎么处理呢?下面是一个简单的小实例。原图处理后效果原代码.h文件#ifndef YIXINGDIALOG_H#define YIXINGDIALOG_H#in原创 2016-03-15 00:06:08 · 956 阅读 · 0 评论 -
QT5 OpenGL (四, 绘制立体图形)
概要效果图主要代码代码解析概要前面几篇博客,已经从基本的绘图, 上色到旋转都已经讲完了, 但它们都只是限于平面图形,而对于立体图形并没有讲到。 本篇主要来讲opengl绘制立体图形。 我们在小学就知道, 线是由点构成, 点构成面, 面构成立体图形。 所以,立体图形的绘制,就是绘制多个有对应关系的平面。 而平面的绘制,就是由多个点的坐标组成。前面几篇博客已经讲过了。效果图主要代码void Ope原创 2016-04-06 23:56:15 · 8899 阅读 · 1 评论 -
QT TTS朗读
做QT项目时,可能会遇上朗读中文或英文,这就是TTS朗读。我用QtCreator做了一个TTS朗读的小例子。首先,在pro文件里面需要加上QT += axcontainer头文件用:#include .h文件的主要代码:#ifndef WIDGET_H#define WIDGET_H#include #include //需要的头文件na原创 2016-02-29 18:11:16 · 3571 阅读 · 1 评论 -
浅谈控件提升之stacked Widget
概要效果方法操作过程图部分代码缺点概要stacked widget 是可以进行多个页面切换的, 每个页面都可以放自己的控件,然后实现相关的功能。然而,如果页面过多,或者每个页面的功能都太过强大的话,那么在一个类里面要实现所有页面的功能,必然会让代码显得杂乱。这也会使这个.cpp文件的逻辑显得不那么清楚。这时,如果通过控件的提升的话,可以使每个页面的代码在各自不同的文件里面,这样,就是代码的原创 2016-03-03 17:13:38 · 6044 阅读 · 0 评论 -
浅谈QGraphics
概要 QGraphics 是QT里面很重要的一个模块,用得比较多的几个类应该是QGraphicsScene, QGraphicsView, QGraphicsItem效果 代码 .h文件#define DIALOG_H#include <QDialog>namespace Ui {class Dialog;}class QGraphicsScene;class QGrap原创 2016-03-02 23:57:47 · 937 阅读 · 0 评论 -
浅谈C++引用与指针
1.首先引用与指针各自的表示方式。引用是用&表示的,而指针是用*表示的。2.引用,指针的作用。 通过引用和指针可以改变传入的初始值。 比如:void test(int a, int b){int temp;temp = a;a = b;b =temp;}这个函数表面上看是交换两个数的值,而如果实际传入参数后,实际的值却并没有改变。如果用v原创 2016-01-25 00:21:22 · 406 阅读 · 0 评论 -
C++ 友员
1.什么是友员?在类中通过声明 friend class 类名 成员友员。例如:class A {private:void show() {qDebug() QString m_testA;};class B {void show() ;QString m_testB;friend class A;}我们可以看到类B中声明了A为B的友员。原创 2016-01-23 22:55:27 · 1098 阅读 · 0 评论 -
QT事件
QT事件总要分为:一。鼠标事件。void mousePressEvent(QMouseEvent *e); //鼠标按下事件,能过滤到鼠标按下那时的状态,里面可以再写事件处理机制。void mouseMoveEvent(QMouseEvent *e); //能监控到鼠标移动状态。void mouseReleaseEvent(QMouseEvent *e); //按鼠标按下后,还原原创 2016-01-22 23:18:13 · 506 阅读 · 0 评论 -
静态成员函数
有时我们觉得静态成员函数还不错,直接类名::函数名,就可以直接使用了, 很方便。 那么怎么写一个含有返回值的外部接口函数呢?主要是关键字static.//a.hclass A {public:A();static QString test();private:static QString m_testA;}//a.原创 2016-01-05 17:47:59 · 296 阅读 · 0 评论 -
QT安装包制作
我们经常用到各种软件, 软件需要从服务器上面下载。下载下来就是一个安装包, 很多人可能也想实现制作一个安装包,给朋友或同事玩玩。 制作安装包需要的下面一些步骤:1.需要release版本的可执行文件, 这个比较简单。在编译时,选择release ,然后会生成一个release的工程目录。在里面的一个release文件夹里面,有一个exe可执行文件, 把这个文件拿出来。原创 2016-01-20 22:29:18 · 1840 阅读 · 0 评论 -
QML 动画特效之撞墙反弹
1.在讲此效果看需要在创建项目时选择qtquick;2. 源码如下import QtQuick 2.0Rectangle { width: 80 height: 80 color: "orange" radius: 10 Text { text: qsTr("属性") anchors.center原创 2016-01-03 22:47:59 · 2414 阅读 · 0 评论 -
QT 如何改图可执行文件图标
我们每天总是见到很多不同的软件的, 每个软件都有自己的图标, QT 也可以很简单地制作有自己图标的软件。 简单说说怎么更改可执行文件图标吧, 制作安装包时, 也需要这一步。正常情况下,我们的项目编译后的release目录下面的exe文件的图标是这样的:通过本方法的介绍可以变成这个样子:步骤如下:1.首先把一张你想要做成的图标.png文件,在线转为ico文件。原创 2016-01-19 22:38:20 · 4198 阅读 · 0 评论 -
QT多语言处理(语言国际化)
大家都可能了解QT的跨平台性很强。 而对多语言处理可能有些人了解不深, 本例就主要介绍了:如何简单地实现一个多语言处理。就以最简单的英文与中文翻译为例:1.首先,新建一个项目,再拖动一个简单的按纽。按纽上输入一个简单的英文单词,比如说:test;2.在项目的根目录中,找到后缀为pro的项目文件, 在.pro 文件里面后面增加一句 TRANSLATIONS+=te原创 2016-01-18 23:09:14 · 712 阅读 · 0 评论 -
浅谈Qt代理
当我们使用QTableView 显示一张表时, 在表格输入时, 比如输入日期时, 我们可能想一个可以选择日期的日历表, 选择职业时, 可能想有一个可以提供下拉的combox提供选择,这时, 就需要用到代理。 直接上源码:#include "combodelegate.h"#include ComboDelegate::ComboDelegate(QObject *p原创 2016-01-16 11:12:03 · 5826 阅读 · 3 评论 -
QT 通过POST方法,上传文件到服务器
直接上代码:第一种方法:QUrl url;url.setUrl(makeFullUrl(m_opt.submitdebateresult.url));#if QT_VERSION >= 0x050000QUrlQuery q;addSessionIdQueryItem(&q);q.addQueryItem(m_opt.submitdebateresult.query.m原创 2016-01-25 15:02:53 · 15074 阅读 · 2 评论 -
QT 通过一个http链接 打开一个浏览器和对应的网页
如果是QT5 以下版本使用:#include #include void LoginDialog::on_testButton_clicked(){const QUrl regUrl(QLatin1String("http://www.baidu.com"));QDesktopServices::openUrl(regUrl);}如果是QT5 以上版本使原创 2016-01-08 15:55:21 · 4220 阅读 · 0 评论 -
QT 窗口设置可拉伸背景图
void Widget::setBackground(){ const QString filePath = QDir::currentPath() + QLatin1String("/images/background.png"); // 这里的路径为安装包路径, 可以改为自己本地路径。 QPixmap pixmap(filePath); QPalette原创 2015-12-24 17:53:47 · 3596 阅读 · 1 评论 -
浅谈QFile
QFile 是QT 中用来处理文件方面的类, 对于普通的文件读取, 写入,都需要用上的。 简单的一个实例:#include "widget.h"#include "ui_widget.h"#include #include #include Widget::Widget(QWidget *parent) : QWidget(parent),原创 2016-01-15 00:09:55 · 470 阅读 · 0 评论 -
QT 实现在一个模块中间显示一个红色提示框,3秒后消失
#include "dialog.h"#include "ui_dialog.h"#include #include Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog), label(new QLabel(this)){ ui->setupUi(t原创 2016-01-31 16:36:32 · 3882 阅读 · 0 评论 -
QT加载网络图片
1.网络图片这里指的是,服务器上面保存的图片,给你一个链接,你可以在浏览器里面打开的图片。2.网络图片的显示跟网络音频,视频不太一样,要比它们麻烦。因为QT 的QMediaPlayer 类中,有设置URL地址的接口,而显示图片就没有这种接口。如QMediaPlayer 的 m_qtaudioPlayer->setMedia(QUrl::fromLocalFile(m_audio原创 2016-01-30 14:15:21 · 5790 阅读 · 1 评论 -
QT控件提升之QPushButton提升为QMenu
当一个控件进行提升之后, 就有了新的功能, 在原来的一些特性基础上,发生一些新的改变。QT控件提升方法:1.需要写一个需要提升为某种功能的类。2.打开qt设计师, 在对应需要提升的控件, 单击右键, 选择 “提升的窗口部件” , 在提升的类名和头文件输入框里, 分别填上你所写的类, 单击提升铵纽进行提升。我这边进行了按钮提升为菜单, 部分源码如下://popupbu原创 2016-01-11 11:25:35 · 5275 阅读 · 1 评论