Qt知识点、疑难杂症的治疗】的更多相关文章

Q: QVariant 保存指针数据   A1: 1,使用QVariant::fromValue((void*)target)保存数据 2,使用(ShortcutItem*)(v.value<void*>()) 提取数据   A2: 1,使用Q_DECLARE_METATYPE(ShortcutItem*) 声明metatype. 2,QVariant::fromValue(target) 保存数据 3,直接使用 (v.value<ShortcutItem*>())提取数据,不必强…
一.简介 由于博主本人是初学者对QT的机制不了解,所以遇到了一个比较大的坑,特此记录一下.我遇到的问题是无法在静态函数中向另外一个类发送信号.解决办法:先将信号发送给同类中的普通函数,然后在从普通函数中发送信号给外部类. 二.C与C++中static的用法 这里不是介绍QT静态函数信号的发送吗,和static的用法有什么联系,因为在编写代码中会出现静态成员无法访问普通成员的错误,这里我复制了菜鸟教程的图片. 接下来先了解一下static的用法. C语言中static的作用 主要有三个作用:隐藏性…
一.准备工作: (1)在OpenCV官网下载3.4.2版本(注意选择Win pack),https://opencv.org/releases.html. (2)下载Contrib模块,https://github.com/opencv/opencv_contrib/releases/tag/3.4.2(记住opencv是什么版本,contrib就下什么版本,必须对应否则编译会出问题) (3)下载CMake,下载后直接安装即可.https://cmake.org/download/ 二.编译生成…
1,QUuid()创建唯一标识码,在创建数据库实体ID和链接数据库QSqlDatabase时非常方便 2,QScrollArea与QScrollBar,如果是要在widget中添加窗口滑动QScrollBar,可以直接用将widget放进QScrollArea中,并设置bar的显示方式为Qt::ScrollBarAsNeeded,有需要则显示,没有则不显示 3,一个信号关联槽条件:Q_OBJECT,  槽函数放在slots标识后, 自定义信号放在signals后,信号和槽函数参数类型一致且不能有…
一.Qt的GUI程序有一个常用的顶层窗口,叫做MainWindow MainWindow继承自QMainWindow.QMainWindow窗口分成几个主要的区域:   二.QAction类 QAction类保存有关于这个动作,也就是action的信息,比如它的文本描述.图标.快捷键.回调函数(也就是信号槽),等等.神奇的是,QAction能够根据添加的位置来改变自己的样子——如果添加到菜单中,就会显示成一个菜单项:如果添加到工具条,就会显示成一个按钮. 把QAction添加到菜单和工具条上:…
1 Qt 官网下载地址 http://download.qt.io/ 2 必须得有pro文件么 不是必须的. pro 文件是个中间文件,通过 qmake 程序能将 pro 文件转换成其它平台的项目文件. 举个例子,有两个人,一个人是用 Qt Create开发工具的,一个人是用 VS 开发工具的,那么如果有了 pro 文件,这两个人就可以通过 pro 文件转成自己熟悉的开发环境的项目文件. 3 pro 文件转成 VS的项目文件(.vcxproj) qmake -tp vc ***.pro…
 1 新建一个空Qt项目 编写12MainWindow.pro HEADERS += \ MyMainWindow.h \ MyView.h SOURCES += \ MyMainWindow.cpp \ MyView.cpp QT += gui widgets MyView.h #ifndef MYVIEW_H #define MYVIEW_H   #include <QWidget>   class MyView:public QWidget{     Q_OBJECT public:…
1:QRegExp 正则表达式 QRegExp regExp("[a-zA-Z][1-9][0-9]{0,2}"); xxx->setValidator(new QRegExpValidator(regExp,this)); lineEdit->setValidator(new QRegExpValidator(regExp,this));   2:QObject::connect() connect(objectA,SIGNAL(methodA()),objectB,SL…
先贴上效果图,注意,没有写逻辑,都是乱动的 这里说一下控件自定义 图中标出的部分都是自定义的控件 这里如果我们有批量类似的功能,就可以使用自定义控件的方式,这里我已下面的自定义控件说一下,上面的在上一篇文章中已经有了代码了 选着项目,鼠标邮件,添加新文件 选择C++类,再选择C++ class 完了点击Choose就可以了 填写自己的类的名称,下面是你要自定义那个控件,一般就把那个控件作为基类,例如QLabel 记得要包好QObject,不然有好多Qt的功能是无法使用的 剩下的就是在类中实现你的…
先贴上效果图,注意,没有写逻辑,都是乱动的 这里讲下 这个小汽车的进入过程,其实这个说白了就没有技术含量了,本来应该趁着这个机会学习一下Qt的动画机制,不过随机一想,这个自己写也累不到那里去 下面说下实现方法 就是简单的绘制 使用QPainter绘制Pixmap就可以 实现代码 void Widget::draw_number_car() { QPainter painter(ui->label_numbre_2); painter.setRenderHint(QPainter::Antiali…
先贴上效果图,注意,没有写逻辑,都是乱动的 看下面的开始,开始的时候有一个带入的效果,这里有一个坑, 网上大部分都是调用下面这个函数 setWindowOpacity(); 但是,你会发现,在你的子窗口中调用这个函数的时候,根本就没有什么调吊用 所以,这里需要使用一个新的东西 这么写 statebar_opacity = new QGraphicsOpacityEffect(); ui->widget_statebar->setGraphicsEffect(statebar_opacity);…
先贴上效果图,注意,没有写逻辑,都是乱动的 看下最中心的指针旋转,这里使用的QPainter的绘制函数 要显示复杂的效果,需要分层 void Widget::draw_number_pointer() { QPainter painter(ui->label_numbre_1); painter.translate(204,204); painter.save(); painter.rotate(pointer_angle); QRect rect(-202,-200,408,408); QRe…
先贴上效果图,注意,没有写逻辑,都是乱动的 看下最上面的部分,有一些仪表图标在闪烁,如果一个一个写,也是可以实现的,不过感觉要累死的节奏 这里我写了一个我自己的Label,完了把把这些QLabel提升为自己的 在我自己的Label中实现了图标的1Hz闪烁 上实现代码 .H文件中内容 #ifndef MQLABEL_H #define MQLABEL_H #include <QObject> #include <QLabel> #include <QTimer> clas…
先贴上效果图,注意,没有写逻辑,都是乱动的 注意看一下,右面的这两个进度条,有瑕疵,就是我没有把图片处理干净,这里犹豫我不知道这个具体的弧度,也没法绘制,就偷懒了 现在上面放一个UI,把两个进度条抠空了如下图 完了在这个图层下面在各放置两个图层,绘制就可以 这样以后把下面的图层填充绘制就好,类似PS中的蒙板 实现代码 /* * 绘制右侧水温条函数 */ void Widget::draw_Rline_1() { QPainter painer(ui->label_rline_1); painer…
先贴上效果图,注意,没有写逻辑,都是乱动的 这篇我来说说左侧的这个进度条的实现原理,其实更简单,哈哈哈 有一个大的widget,根据素材,我放了10个label 剩下的就是写一个函数,根据数据的不同,实时控制这10个label的显示, 实现代码 void Widget::show_Lline(int num) { switch (num) { case 0: { ui->label_lline_1->hide(); ui->label_lline_2->hide(); ui->…
先贴上效果图,注意,没有写逻辑,所以这些都是乱动的 这里线主要说一下中间显示速度的显示制作的方式,在这里,自己专门写了一个数字的仪表 考虑的一般的汽车是没有办法把瞬时速度提升到四位数的,所以我这里就放了三位数,完了根据实时数据,更新这三个label的资源文件,在这个新的类中,只有一个函数,那就是设置数字 void set_number(int num = 0); 下面是实现方法,这个方法应该还可以优化,不过懒得优化了,先把功能堆出来. void Number_1::set_number(int…
编译环境与开发流程 开发QT有两种IDE可以使用,一种是使用 VS + Qt 的插件,另一种就是使用QtCreator工具.前一种是微软的工具,用的都比较多容易上手,缺点是信号槽的支持不太好,需要手写,不能自动生成,另外可能有中文编码的问题.后一种是Qt的官方IDE,智能提示与调试功能不如VS强大,但是是跨平台的IDE,其QtDesigner设计UI界面操作比较方便,并且由于是QT官方的IDE,对编码等支持都比较好,里面集成了Qt的帮助文档.不得不说Qt的帮助文档做的是非常好的,集成进QtCre…
每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客! 废话说多了...... 嘿嘿:本篇标题为:C#  (事件触发)回调函数,完美处理各类疑难杂症.个人理解如下:事件触发也就是触发一个事件,触发的这个事件是通过函数来实现的,而这个函数也就是回调函数. 如果现在让你开发一个支付类的程序,那么你必须考虑到:当用户支付成功后,订单的状态,支付时间等字段的更改.那么怎样做到更改这些字段呢? 1.什么情形下用回调函数/事件触发? 做过支付宝支付,微信支付等第三方支付功能的小伙伴都知道…
前言: Qt 是一个跨平台的 C++图形用户界面库,由挪威 TrollTech 公司于1995年底出品. Trolltech 公司在 1994 年成立,但是在 1992 年,成立 Trolltech 公司的那批程序员 就已经开始设计 Qt 了,Qt 的第一个商业版本于 1995 年推出. 2008年1月31日,Nokia公司宣布通过公开竞购的方式收购TrollTech公司,旗下包括Qt在内的技术都归入Nokia旗下.并且Nokia针对自己的移动设备平台规划的需要,将Qt按不同的版本发行. Qt商…
本文主要是通过一本书来大致了解Qt开发的框架,不对具体内容做详细分析. 1.首先弄清楚概念:定义->以自己的话理解是什么-> 实现的是什么功能->用在哪些地方 2.前面认识到的知识点的特点-> 代码实现-> 工程代码分析 第一部分 Linux基础知识第二部分 Qt程序基础第5章 OtCreator下载与安装5.1 QtCreator下载5.1.1 使用软件中心下载QtCreator5.1.2 访问Qt网站下载相关资源5.2 第一个Qt程序5.3 QtCreator介绍5.3.…
说起qt,大学时就有接触,但一直没有深入,这个周六周天利用两于时间重新温习了一下,跟之前用过的vs上的MFC.C++ builder比起来,Qt封装很人性化,库也比较全,写个 一般的小工具很轻松. 参考的教程为:Qt快速入门系列教程目录 , 很详细很实用(除了一些插图说明看不了) 导语        该系列教程是基于QtCreator开发环境的Qt入门级教程.自2009年10月至今的两年多时间里,该系列教程逐渐完善,已经包含了Qt基础.2D绘图.数据库和XML.网络编程.Qt Quick等最基本…
一. 简介 就我个人来理解,信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁. 信号和槽机制是 Qt 的核心机制,可以让编程人员将互不相关的对象绑定在一起,实现对象之间的通信. 信号 当对象改变其状态时,信号就由该对象发射 (emit) 出去,而且对象只负责发送信号,它不知道另一端是谁在接收这个信号.这样就做到了真正的信息封装,能确保对象被当作一个真正的软件组件来使用. 槽 用于接收信号,而且槽只是普通的对象成员函数.一个槽并不知…
一. 下载mysql C链接库 地址:http://dev.mysql.com/downloads/ 根据当前系统选择下载: 二. 安装下载好的mysql驱动文件 注意,一定要安装在不含有中文.空格以及特出符号的文件.路径中,为了方面起见,我直接安装在了 E:\MySQL 目录下,建议这么做. 一定要选择第二项,否者我们没法指定安装目录,会默认安装到C盘下.不过后来证明安装到哪里都无所谓,但这里作为一个安装mysql的知识点吧,因为在安装mysql server时一样可以通过这种方式选择安装路径…
(说明:我们的编程环境是windows xp下,在Qt Creator中进行,假设在Linux下或直接用源代码编写,程序稍有不同,请自己修改.) 在Qt中并没有特定的串口控制类,如今大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类.我们能够去 http://sourceforge.net/projects/qextserialport/files/ 进行下载,也能够去下载我上传到网上的: http://download.csdn.net/source/176278…
转载:http://blog.csdn.net/yafeilinux/article/details/4717706  作者:yafeilinux (说明:我们的编程环境是windows xp下,在Qt Creator中进行,如果在Linux下或直接用源码编写,程序稍有不同,请自己改动.) 在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类.我们可以去 http://sourceforge.net/projects/qextser…
一.简介 最近因项目需求,Qt程序一旦检测到错误,要重新启动,自己是每次关闭主窗口的所有子窗口但有些模态框会出现问题,因此从网上总结了一些知识点,以备以后的应用. 二.详解 1.Qt结构 int main(int argc, char *argv[]) { QApplication a(argc, argv); MyWidget w; MyDialog dialog;                      //新建MyDialog类对象 if(dialog.exec()==QDialog::…
一.简介 最近因项目需求,Qt程序一旦检测到错误,要重新启动,自己是每次关闭主窗口的所有子窗口但有些模态框会出现问题,因此从网上总结了一些知识点,以备以后的应用. 二.详解 1.Qt结构 int main(int argc, char *argv[]) { QApplication a(argc, argv); MyWidget w; MyDialog dialog;                      //新建MyDialog类对象 if(dialog.exec()==QDialog::…
源地址:http://www.cnblogs.com/wangqiguo/p/4625611.html 阅读目录 编译环境与开发流程 QT项目的构成及原理 QT中的布局 QT中的通用控件 QVariant 类型 QComboBox控件 QTableWidget控件 QTabWidget控件 QWebview控件 使用QSS 编码问题 QT的内存管理 QT的信号槽 QT中绘图 QT的线程 QT中使用第三方的dll QT中为控件添加右键菜单的方法 结束语 回到顶部 编译环境与开发流程 开发QT有两种…
需求分析: 需要注意的是在这里第一次,这个人是不是QT系列文章,它是关于Web的,之所以写这篇文章.这是因为碍着Web相关开发时间,而且往往涉及linux与底层指令处理.例如,创建一个文件夹,删除一个文件夹,或者是运行一个自己定义的脚本.关于PHP怎样调用.运行Linux的底层命令.曾经也研究过,基本上实现了自己须要的功能,可是有些地方一直没有弄明确.今天又偶然碰到了,趁着这个机会向大家描写叙述一下一步一步应该怎样实现,并最后附上相关C代码. 原理实现: 首先,一般搭建的Web网站都是採用Apa…
总结: 1. qt输出中文乱码原因分析 qt的编程环境默认是utf-8编码格式(关于编码见下文知识要点一): cout << "中文" << endl; 程序运行,程序并不认识ANSI,UTF-8以及任何其他编码.系统只知道处理你给它的字符的二进制表示. 关于  "中""文" 的3种编码二进制内容: ANSI(GBK): 0xd6d0  0xcec4 UTF-8: 0xe4b8ad 0xe69687 Unicode: 0x…