Qt5中的QtGui】的更多相关文章

我在学习Qt查看Qt Creater提供的例子时,遇到了一个小问题.就是明明在代码中包含了QtGui,然而编译的时候还是提示找不到QLabel的定义,以及其他一些类的定义,但是这是官方提供的文档的啊,不应该没通过编译就提供吧,所以就想肯定是自己哪里出了问题,在网上搜了一下果然,归根到底还是版本问题吧,提供的文档估计是版本qt4的,而我自己使用的是qt5,它两个之间的一个区别就是Qt5把关于控件的头文件都移到 <QtWidgets>中了,所以如果在 Qt5 中使用控件应该包含 <QtWid…
qt5中的连接 有下列几种方式可以连接到信号上 旧语法 qt5将继续支持旧的语法去连接,在QObject对象上定义信号和槽函数,及任何继承QObjec的对象(包含QWidget). connect(sender, SIGNAL (valueChanged(QString,QString)),receiver, SLOT (updateValue(QString)) ); 新语法:连接到QObject成员 下面是一种新的方式来连接两个QObjects: connect(sender, &Sende…
Qt4中的信号槽 Qt4中的信号槽是通过SIGNAL,SLOT两个宏,将参数转换成字符串.Qt编译前,会从源码的头文件中提取由signal和slot声明的信号和槽的函数, 将其组成一张信号和槽对应的字符串表.connect函数的作用是,将信号关联的槽字符串,同这张表的信息进行对比.这样信号发出的时候,就可以知道调用哪一个槽函数了. Qt4信号槽的不足 没有编译期的检查:Qt4中的信号槽会被宏转化成字符串处理,而字符串的比较机制是在程序运行的时候检测的.而且,转换成字符串后,信号槽的参数数据类型就…
c11新特性中加入了lambda表达式,所以Qt 也支持 需在.pro文件中加入 CONFIG += c++11 例子: QString program = "C:/Windows/System32/cmd.exe"; QStringList arguments; arguments << "/c" << "dir" << "C:\\"; QProcess* cmdProcess = new…
项目中有一个需求就是,因为需要请求服务端数据,因为网络的读取会阻塞,所以该过程不能放在Qt中的UI主线程当中,需要用一个后台线程来读取数据,数据准备完毕后 在通过Qt5中的信号槽机制来跨线程的传递数据.之前的博文使用过moveToThread的方式来讲解创建后台线程,但是现在后台线程需要与前台UI线程数据互交,然而,最悲剧的就是信号发出去了, 但是前台的UI线程对象收不到信号,也就是相应的槽函数没被调用.之前博文后台线程是没有与前台UI线程互交的,因为它是采集数据的线程,只管往目标地址发送数据就…
QT5中如何使用QFtp类 http://2662597.blog.51cto.com/2652597/1279806 由于QT5对QML的支持有很大的改进,所以打算将原来基于QT4的程序移植到QT5上,在移植用QFtp类写的程序时傻眼了! Qt5 移除了 QFtp API,原因是其实现质量.QNetworkAccessManager 可以用来提供 ftp url 的上传下载操作. 由于原来的程序已经跑的很稳定了不想做修改,然后就去想其它办法,结果发现官方说这些 API 将由某一易于迁移的独立形…
在 Qt5 中,提供更多 C++11 的特性支持,接下来我们将进行详细的说明. slots (槽) 的 Lambda 表达式 Lambda表达式 是 C++11 中的一个新语法,允许定义匿名函数.匿名函数可用于使用小函数作为参数,而无需显式的进行声明.之前可以通过编写函数指针来达到同样的目的. 在 Qt 4.8 中已经可在一些 QtConcurrent 函数中使用 Lambda 表达式了.但在 Qt5 中甚至可以通过 new connect syntax 来将 Lambda 表达式作为 slot…
C++11 是现在的 C++ 标准的名称,C++11 为 C++ 语言带来很多新特性. 而 Qt 4.8 是 Qt 首个在其 API 中开始使用一些新的 C++11 特性的版本,我之前写过一篇博文:C++11 in Qt 4.8 描述了这个问题,这里不再罗嗦. 在 Qt5 中,提供更多 C++11 的特性支持,接下来我们将进行详细的说明. slots (槽) 的 Lambda 表达式 Lambda 表达式 是 C++11 中的一个新语法,允许定义匿名函数.匿名函数可用于使用小函数作为参数,而无需…
今天新学QT是,从一个ppt中边看边抄边学.前几页还能理解,但到了用纯源码写空白QT工程时,便遇到了一个问题.头文件里包含 #include  <QtGui> 但是编译时总是出现下面图一中的问题.开始以为是中丢失,到安装路径中查找,可以找到,又想到是不是套件不匹配,更改了图二和图三的套件, ​图一 ​图二 ​图三 头文件需修改为 #include <QtWidgets> QWidget似乎没有用... 这还不算完,Pro文件也需要更改.   QT += core gui   gre…
qt5与qt4在QPrinter中使用的不同点如下: 在.pro文件中加入如下语句:…
提升法 eg.(定义一个新的QLable部件)1.定义一个类class Label : public base, public QLabel //可以支持多重继承2.在qt creator中打开ui编辑器,拖曳一个QLable兑现,提升,输入提升的类名Label,勾选全部包含,添加,提升成功. 插件法Qt Assistance:Creating Custom Widgets for Qt Designer1.和提升法一样,也需要先建立一个新的部件类class AnalogClock : publ…
由于QT5对QML的支持有很大的改进,所以打算将原来基于QT4的程序移植到QT5上,在移植用QFtp类写的程序时傻眼了! Qt5 移除了 QFtp API,原因是其实现质量.QNetworkAccessManager 可以用来提供 ftp url 的上传下载操作. 由于原来的程序已经跑的很稳定了不想做修改,然后就去想其它办法,结果发现官方说这些 API 将由某一易于迁移的独立形式提供. 鄙人就去git看了看,结果发现这个源码一直在更新,已经更新到支持Qt5了,所以我就下载了一份源码,然后编译了一…
在windows平台使用Qt5.8mingw版写出的程序,在Qt中运行正常,而以release的形式编译并且补充完必要的dll文件后,在其他电脑上运行出现了以下问题: 经过查阅许多资料和亲身实验,终于解决了这一问题,简单的说,需要在含exe程序的文件夹中新建platforms文件夹,并且在里面添加qwindows.dll文件,qwindows.dll文件的具体路径是Qt\Qt5.8.0\5.8\mingw53_32\plugins\platforms,Qt文件夹所在的具体盘符与安装的路径有关,默…
问题描述:用QT5做了个MDI多窗体应用程序,想把子窗体全屏显示,用网上的方法,但总是遇到问题. 网上的解决方法原文在这:http://www.cnblogs.com/Rick-w/archive/2012/03/05/2381048.html ,它的核心代码在这: setWindowFlags(Qt::Dialog); showFullScreen(); 但是,我在Qt 5.4.1 (MSVC 2010, 32 bit)下面试了没用,下面是我的解决方法. 解决方案 在构造函数保存父widget…
c11新特性中加入了lambda表达式,所以Qt 也支持 需在.pro文件中加入 CONFIG += c++11 例子: QString program = "C:/Windows/System32/cmd.exe"; QStringList arguments; arguments << "/c" << "dir" << "C:\\"; QProcess* cmdProcess = new…
在QT中静态库的后缀名为.a,在vs中开发的静态库后缀名为.lib.QT版本为5.2.1,系统为Windows. 一. 静态库的生成 新建项目. 新建一个静态库的项目,如图1.1所示:项目名称为test    …
在Qt中如果是普通项目,GUI处理展现的数据量不大,一般用QTableWidget,QTreeWidget这样的控件就满足了,但是如果数据量行数达到了几万行,那么Widget的展示性能就偏差了. Qt中提供了一种Model/View的编程方式来处理数据,也就是展示层和数据层分离,这样就解耦了.一旦Model的状态改变,它会自动渲染到View控件.这样的机制使得GUI可以展现大量的数据也不会卡顿. 为了处理数据的灵活性,我们用QStandardItemModel来做QTableView的Model…
一个窗体A调用另一个窗体B: 1)包含窗体B的头文件#include"B.h" 2)在窗体A中增加slots函数: public slots: void infoRecv(QString); 实现infoRecv函数体: void A::infoRecv(QString sInfo) { ui->label->setText(sInfo);//将获取的信息显示出来 } 3)在窗体B中增加signals函数: signals: void infoSend(QString);…
qtmqtt库源码下载链接 链接:https://pan.baidu.com/s/1TyqbLX5x17mwhAX-OJiorw 提取码:i6ww perl安装下载链接 链接:https://pan.baidu.com/s/1xQTMjChlr2mSothEHbMRzA 提取码:jqxs 下载qtmqtt库源码,打开qtmqtt文件夹中的qtmqtt.pro工程文件 使用release编译,期间出现perl错误,下载perl安装, 编译完成后将qtmqtt/src/mqtt拷贝到Qt/5.13/…
最近将公司的界面开发库从WX转换到了QT,有了信号和槽,原本我们在使用WX的时候,为了使用信号,我们是使用BOOST的signal2库,到了QT有了信号槽,这个就没什么必要了 但是前段时间使用QT发现QT的信号和槽没有placeholder,也就是占位符,于是信号和槽声明只能严格地一样,比如 void slot(int val); void signal( int val); 但是在signals2,我们可用利用placeholder,及时函数声明不一样,也可用进行connect void sl…
StandardButton QMessageBox::warning ( QWidget * parent, const QString & title, const QString & text,StandardButtons buttons = Ok, StandardButton defaultButton 将第一个参数设为NULL,就正确了…
在pro文件里写"QT+=widgets"表示引入QtWidget这个module,qmake在生成makefile的时候,会设置好include path 和 lib path,在link时候设置好libs. QT += widgets包括两部分: 1:Lib,这个是lib的路径和lib文件的文件名. 2:include  , *.h的路径在pro文件里设置,.h的文件名用代码里的#include设定 QT += widgets 貌似可以分开写成(大致是这样): INCLUDE+=…
以例子说明: #include <QApplication> #include <QDebug> #include <QString> #include <QByteArray> int main(int argc, char *argv[]) { QApplication a(argc, argv); ]; memset(abc, , sizeof(abc)); QString str("hello world."); QByteArr…
1.添加头文件 #include <QTextCodec> 2.用QTextCodec 设置格式转换 QByteArray barr; barr.insert(0,(char*)(pMsg->wParam)); QTextCodec *tc = QTextCodec::codecForName("GBK"); QString tmpQStr = tc->toUnicode(barr); this->ui.send_btn->setText(tmpQS…
有个需求就是,GUI图形界面在上传文件到服务器的时候,需要用zip命令行打包,因为文件很多的时候,zip命令打包需要计算很长时间,所以把这样计算量大的任务分离到后台线程比较合适,然后任务完成,以信号槽机制来通知前台 UI线程处理结果.所以这个线程是需要销毁的,跟之前的一直在运行的后台线程接收网络数据的不一样. 压缩文件的任务类  H文件: #include <QObject> #include <QStringList> class ZipUpdatePackageTask : p…
当我们用Qt Creater时,经常出会出现如下问题: 处理方法如下:用记事本打开你的源代码,然后点另存为,utf-8,编码覆盖,这时中文就没问题了但是会乱码.在字符串前加个宏QStringLiteral把字符串扩起来:这样字符串就不会乱码了.这个问题是qt creator的问题,用vs2010就不会.…
1. 自己构造新类,注意必须在头文件最后加上分号 写个c++类报“构造函数不能有返回类型”, 谷歌一下,才找到原因: 原来是我定义的类后面没有用“:”结尾,构造函数默认把整个类作为返回值了 2. 新建类后,报LNK2019:找不到一个函数 的实现 原因是QT的一个BUG,需要将生成目录删除并重新编译. 3. C++调用C代码的问题…
准备工作 参考 https://wiki.qt.io/Install_Qt_5_on_Ubuntu . # 安装g++ sudo apt install build-essential # sudo apt install libfontconfig1 # 安装openGL支持 sudo apt install mesa-common-dev libglu1-mesa-dev 从ustc镜像直接下载安装包, 地址是 http://mirrors.ustc.edu.cn/qtproject/off…
从新学习Qt时,重装了Qt5.4,当运行Hello World例子时,遇到了下列的情况 <span style="font-size:18px;">#include <QApplication> #include <QDialog> #include <QLabel> int main(int argc, char *argv[]) { QApplication a(argc,argv); QDialog w; QLabel label(…
1,VC中查询所有含中文字符串 使用正则表达式,查询内容为: (".*[\u4E00-\u9FA5]+)|([\u4E00-\u9FA5]+.*") 这样,就可以把代码中的中文都查询出来.对处理QT5中的中文问题,很有帮助. 2,VC环境下,QT5中文的处理 VC环境下,提供两种编码文式,UNICODE,和多字节字符集,而QT5中使用的字符集为UTF-8,要正确处理QT5中的中文情况,要注意以下几点: A,QT5内部都是UTF-8编码在处理,不需要转换了,一个典型的问题,就是中文目录的…