GUIs are Dynamic C++ is a standarized, powerful and elaborate general-purpose language. It's the only language that is exploited on such a wide range of software projects, spanning every kind of application from entire operating systems, database ser…
Qt is well known for its signals and slots mechanism. But how does it work? In this blog post, we will explore the internals of QObject and QMetaObject and discover how signals and slot work under the hood. In this blog article, I show portions of Qt…
Ref https://doc.qt.io/archives/qq/qq16-dynamicqobject.html Trolltech | Documentation | Qt Quarterly Dynamic Signals and Slotsby Eskil Abrahamsen Blomfeldt Signals and slots are declared at compile-time, and normally you cannot add new signals and slo…
通过手写qt代码来认识qt程序的构成,以及特性.设计一个查找对话框.以下是设计过程 1 新建一个empty qt project 2 配置pro文件 HEADERS += \ Find.h QT += widgets SOURCES += \ Find.cpp \ main.cpp 3 编写对话框的类 代码例如以下: //Find.h #ifndef FIND_H #define FIND_H #include <QDialog> class QCheckBox; class QLabel;…
Qt 4.6: A Quick Start to Qt Designer A Quick Start to Qt Designer Using Qt Designer involves four basic steps: Choose your form and objects Lay the objects out on the form Connect the signals to the slots Preview the form Suppose you would like to de…
目录 Qt DLL总结[一]-链接库预备知识 Qt DLL总结[二]-创建及调用QT的 DLL Qt DLL总结[三]-VS2008+Qt 使用QPluginLoader访问DLL 开发环境:VS2008.Qt4.7.4,附件有源码可供下载 最近在总结如何访问DLL中的类对象及其成员函数,其中一种方法利用Qt的QPluginLoader类就可以方便快捷的访问DLL中的类,以及其中的类成员函数. 文件结构如下图: 解决方案名:TestPlugin 1.Qt的Library项目(PluginDll)…
Internationalization with Qt 应用程序的国际化就是使得程序能在国际间可用而不仅仅是在本国可用的过程. Relevant Qt Classes andAPIs 以下的类支持Qt的国际化. QTextCodec QTextDecoder QTextEncoder QTranslator QLocale Languages and WritingSystems 有时,国际化是比较简单的,例如,把美国的应用程序让澳大利亚或英国的用户可访问,只需要简单的改变拼写.但是,把美国的…
语言:c++ 编译库:Qt GUI,qt5.12.1 软件类型:Qt application,qt桌面软件 运行平台:window 10 ?按照[https://www.devbean.net/2012/08/qt-study-road-2-hello-world/]里的教程在QtCreator IDE里一步步进行,结果...报了这个错误:[qt.qpa.plugin: Could not find the Qt platform plugin "windows" in "&…
Qt开发的程序在没有安装Qt环境的机器上可能出现的一些问题,如:除png外的其它类型的图片,如:jpg.ico.bmp等,还有中文乱码等问题,出现这些问题的本质是Qt对这类文件格式或编码格式的支持方式加载插件. 打开Qt安装目录,里面有个plugins文件夹,文件夹里又有很多文件夹,如:codecs.imageformats.sqldrivers等,其中codecs是Qt对除英文以外的各种语言支持的插件,有简体中文.繁体中文.日韩文等:imageformats是Qt对除png外其它图片格式支持的…
一.编写 Hello World Gui程序 Hello World程序就是让应用程序显示"Hello World"字符串.这是最简单的应用,但却包含了一个应用程序的基本要素,所以一般使用它来演示程序的创建过程.本节要讲的就是在Qt Creator中创建一个图形用户界面的项目,来生成一个可以显示"Hello World"字符串的程序. 1.1 新建 Qt Gui 应用 (1)运行 QtCreator,打开"文件一新建文件或项目"菜单项(也可以直接…
Qt Creator 是一个跨平台的.完整的 Qt 集成开发环境,其中包括了高级C++代码编辑器.项目和生成管理工具.集成的上下文相关的帮助系统.图形化调试器.代码管理和浏览工具等.这一章先对 Qt Creator 的下载安装和界面环境进行简单介绍,然后打开并运行一个 Qt 示例程序来让读者了解 Qt Creator 的基本使用方法,其中会重点介绍帮助模式的使用.Qt Creator 其他功能可以参考 Qter 开源社区书籍页面相应的网络教程. 一.Qt Creator 的下载与安装 这里的主要…
看了不少linux上编译qt的文章,实际上直接通过yum 安装qt是最方便的,请参考<yum安装qt> 不过初步接触fedora,为了了解一下如何在linux上编译.安装开源代码,所以必须手动编译,走完这一趟. ----------------------------------- 一键安装完,qt编译所有必需库 yum install gcc-c++ libXtst-devel freetype freetype-devel fontconfig-devel libXrender-devel…
1.如何在窗体关闭前自行判断是否可关闭答:重新实现这个窗体的closeEvent()函数,加入判断操作 void MainWindow::closeEvent(QCloseEvent*event){if (maybeSave()){writeSettings();event->accept();}else{event->ignore();}} 2.如何用打开和保存文件对话答:使用QFileDialog          QString fileName = QFileDialog::getOp…
1.   安装    qt-opensource-windows-x86-msvc2015_64-5.6.0.exe   (根据自己的VS版本来安装) 下载地址 http://download.qt.io/official_releases/qt 2. 点击VS2015 的“扩展和更新”  搜索QT  安装第一个 QT Visual Studio Tools  即可 安装好了会出现如下功能 3. 设置VS2015 下的QT路径,  点击 QT VS Tools --- QT Options 点击…
由于 Qt 集成了大量成熟模块,使之成为 C++ 领域中最好用的开源技术跨平台 GUI 开发框架.基于 Qt 能开发 Windows MacOS 传统桌面或无 GUI 应用程序.Unix/Linux 平台应用程序.嵌入式应用程序.移动端应用程序.等.目前,Qt5 Qt6 采用 LGPL 商业双许可协议,支持 Microsoft Windows.GNU/Linux.Mac OS X.Android.iOS.WinCE.UNIX 家族等平台.想从零开发自已的 C++ 应用,若是大工程则需要很多年才能…
qt是一个c++的界面库,其特点就是其源码可以跨平台编译,这样在写自己的小工具时可以方便地在windows,mac或linux环境下移植了.在windows下写c++程序当然选vs,在mac下写程序当然用xcode,在linux下就完全控制台吧. 本人仅仅将其看成是一个c++的库,所以不想学习新的的IDE--qt creator,也不想去学qt designer,所以qt的预处理都需要自己用命令来折腾. Moc 从qt继承而来的类只要用了关键字 Q_OBJECT,都必须生成其对应的moc文件,命…
moc 代表 Meta-Object Compiler,"元对象编译器".Qt 程序在交由标准编译器编译之前,先要使用 moc 分析 C++ 源文件. 假设它发如今一个头文件里包括了宏 Q_OBJECT,则会生成另外一个 C++ 源文件.这个源文件里包括了 Q_OBJECT 宏的实现代码.这个新的文件名称字将会是原文件名称前面加上 moc_ 构成.这个新的文件相同将进入编译系统,终于被链接到二进制代码中去.因此我们能够知道,这个新的文件不是"替换"掉旧的文件,而是与…
Qt 将源代码交给标准 C++ 编译器,如 gcc 之前,需要事先将这些扩展的语法去除掉.完成这一操作的就是 moc. moc 全称是 Meta-Object Compiler,也就是"元对象编译器".Qt 程序在交由标准编译器编译之前,先要使用 moc 分析 C++ 源文件.如果它发现在一个头文件中包含了宏 Q_OBJECT,则会生成另外一个 C++ 源文件.这个源文件中包含了 Q_OBJECT 宏的实现代码.这个新的文件名字将会是原文件名前面加上 moc_ 构成.这个新的文件同样将…
https://woboq.com/blog/verdigris-qt-without-moc.html https://github.com/woboq/verdigris…
前言   本项目的出现理由只是笔者的一个念头,于是利用专业Qt和Opencv相关的知识开发一个辅助工具,本文章仅用于Qt和Opencv结合的学习.   Demo演示效果          运行包下载地址(供测试学习)   CSDN粉丝0积分下载地址:https://download.csdn.net/download/qq21497936/85372782  QQ群下载地址:1047134658(点击"文件"搜索"findTheDifference",群内与博文同步…
MainWindow中 private slots 函数 void print_on_log(QString strtemp);输出一个字符串到编辑窗口中 class MainWindow:publicQMainWindow { Q_OBJECT public: explicitMainWindow(QWidget*parent=0); ~MainWindow(); privateslots: voidprint_on_log(QStringstrtemp); 定义一个新类Test_one在此类…
前段时间做过一个界面刷新的优化,遇到的坑比较多,在这里做一点点总结吧.     优化的方案是滚动滚动条的时候用截屏的方式代替界面全部刷新,优化完成后,界面在滚动时效率能提升大概一倍,背景介绍完毕.     用到最主要的是QT的截屏功能     window原生api会提供截屏滚动的功能.可以用这个ScrollWindowEx这个api.它会根据相应的参数在屏幕中进行滚动相应的区域.是不是很容易?但是结果却是不理想,因为用的是Qt,控件重写过PaintEvent的方法.调用api实时能看到效果,但…
QString QString的一些基本用法 basic.cpp #include <QTextStream> int main(void) { QTextStream out(stdout); QString a = "love"; a.append(" chess"); a.prepend("I "); out << a << endl; out << "The a string ha…
Qt常用类 向控制台输出文本 第一个例子,我们采用STL的方式: console.cpp #include <iostream> int main() { std::cout << "console application\n"; } 第二个例子我们用QT4编程库 console2.cpp #include <QTextStream> int main() { QTextStream out(stdout); out << "c…
Lua与C++之间可以实现非常强的交互性.Lua中可以使用C++中的函数,C++中也可以使用Lua中的函数.由此可以引发出很多奇思妙想了. 简单来说,Lua动态的特性补充了C++的功能.当然,也看你具体怎么用. 笔者经常使用Qt,故准备将Qt和Lua结合在一起.想象一下在Lua脚本中调用如下代码: w = QWidget:new() w:show() 然后弹出一QWidget的窗口,是多么感人的一件事情呀. 好,下面开始配置环境吧. 1. 下载Lua 5.1.目前的最新版本是5.2,但是因为使用…
从内存泄露开始? 很简单的入门程序,应该比较熟悉吧 ^_^ #include <QApplication> #include <QLabel> int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel *label = new QLabel("Hello Dbzhang800!"); label->show(); return app.exec(); } 在  从 Qt…
JSON Support in Qt   Qt5之后开始提供对处理JSON数据的支持,JSON是一种Interter数据交换的数据格式.   JSON 用于存储结构化的数据,JSON有6种基本数据类型:   bool double string array object null     All keys in an object are strings, and an object cannot contain any duplicate keys.  在JSON的对象中,所有的键都是字符串,…
转自:http://www.stardrad.com/blog/qt-5%E7%A8%8B%E5%BA%8F%E5%9C%A8windows%E4%B8%8A%E7%9A%84%E5%8F%91%E5%B8%83/ http://blog.163.com/qimo601@126/blog/static/1582209320132291718389/ 最近做了个qt的程序,但是发布程序比较困难,因为qt5有着比较多的dll,如下两篇详述了qt dll依赖库,以及如何查询自己工程所用的dll及打包发…
从内存泄露开始? 很简单的入门程序,应该比较熟悉吧 ^_^ #include <QApplication> #include <QLabel> int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel *label = new QLabel("Hello Dbzhang800!"); label->show(); return app.exec(); } 在  从 Qt…
 新建QT项目 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt=""> 项目结构: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/…