qmake

QT移植:银河麒麟(Kylin)完整移植Qt5.9.2, 包含QCharts和QML等全部模块

China☆狼群 提交于 2020-10-18 12:41:33
最近项目接触到国产飞腾服务器,搭载的是我们国家自主的银河麒麟操作系统,系统自带Qt5.6,只有widget那套框架,没有QML也没有QCharts,因此尝试重新编译一个较新和稳定的Qt版本,所以选择了Qt5.9. 在此记录一下, 以便将来再用。Qt源码内的README文档已经把编译安装步骤写得很详细,出了问题第一时间对照文档是否有遗漏或疏忽。 一、 准备工作 1、官网下载Qt源码,Qt Creator源码。 http://download.qt.io/archive/qt/5.9/5.9.2/single/ http://download.qt.io/official_releases/qtcreator/4.5/4.5.0/ 2、官网下载zlib库 http://www.zlib.net/ 3、确保系统的gcc,g++, python, perl等符合Qt安装要求,具体请参见Qt源码内的README文档 二、编译安装Qt 1、将下载的文件放到/home/kylin/Qt_Source文件夹内 2、解压zlib源码, 进入源码目录,执行以下代码安装。如果系统已经有zlib库, 可以不用执行此步骤 ./configure make & make install 3、解压qt-everywhere-opensource-src-5.9.2源码包,进入解压后的文件夹, 执行.

QT出现没有MySQL驱动,手动编译步骤

心不动则不痛 提交于 2020-08-18 07:04:06
报错代码: "QSqlDatabase: QMYSQL driver not loaded ,QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7" 压根就没有QMYSQL,那么就需要我们手动编译,非常简单。 笔者的配置: QT版本 :5.13.0 MySQL数据库是使用的SQLyog,一个像excel的非常简单的MySQL数据库处理软件 1. 下载64位的MySQL Community Server,截至笔者发稿前最新版本是 MySQL Community Server 8.0.19 下载地址: https://dev.mysql.com/downloads/mysql/ 下载后解压备用,不用安装哦。 2.在QT安装目录中找到qt安装目录找到: qt安装目录\5.13.0\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro文件, 然后用QT打开该文件。 在该文件中添加 #该路径是刚才下载解压备用的mysql的头文件路径 INCLUDEPATH +="D:\Software\mysql-8.0.19-winx64\include" #该路径是刚才下载解压备用的mysql的库文件路径 LIBS +=" D:\Software\mysql-8.0.19

编译 QtScrCpy for Linux

末鹿安然 提交于 2020-08-09 22:31:18
环境 操作系统:Ubuntu Kylin 优麒麟 20.04 LTS 适用架构:AMD64、ARM64(鲲鹏、飞腾) 操作系统:Debian 10 Buster 适用架构:MIPS64EL(龙芯) 安装依赖 sudo apt install git cmake gcc g++ qt5-default qt5-qmake qtcreator build-essential libgl1-mesa-dev qtbase5-private-dev libqt5x11extras5-dev libavformat-dev libswscale-dev mingw-w64 克隆项目 git clone https://gitee.com/Barryda/QtScrcpy.git 启动 QtCreator sudo qtcreator 编译软件 快捷键 Ctrl + O 或点击“文件”、“打开文件或项目”,选择 QtScrCpy 所在目录中的 all.pro 这个文件。然后点击“Configure Project”配置项目。 一般情况下,上边这一步都可以自动完成。如果 Kits 工具没有完成自动检测,可以手动设置一下。比如,Qt Qmake 的路径。 运行软件 将手机开启“开发者选项”进入开发者模式,启用“USB 调试”。通过 USB 数据线连接到电脑。在弹出的对话框中选择 USB 连接模式为

Qt开发技术:QtSVG介绍、使用和Demo

霸气de小男生 提交于 2020-08-09 17:35:03
若该文为原创文章,未经允许不得转载 原博主博客地址: https://blog.csdn.net/qq21497936 原博主博客导航: https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址: https://blog.csdn.net/qq21497936/article/details/105537292 各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中.. .(点击传送门) Qt开发专栏:开发技术(点击传送门) 前话 红胖子,来也! Qt的SVG介绍、基本使用和Demo演示。 Demo Demo1:QSvgGenerator 保存后的SVG文件为: Demo2:QSvgRenderer Demo3:QSvgWidget Qt SVG 可缩放矢量图形(SVG)是一种基于XML的二维矢量图形描述语言。Qt提供了用于在小部件和其他绘制设备中呈现和显示SVG图形的类。 概述 Qt SVG提供了用于呈现SVG文件的类。要包含模块类的定义,请使用以下指令: #include <QtSvg> 要链接到模块,请将此行添加到qmake

QT

吃可爱长大的小学妹 提交于 2020-08-05 16:46:44
1 connect问题 使用信号槽机制时,需要满足以下几个条件 (1)继承 QObject class xx: public QObject (2)定义Q_OBJECT宏 class xx: public QObject{ Q_OBJECT } (3) Undefined reference to vtable 错误 问题由于引入了Q_OBJECT宏, 构建->执行qmake,重新运行qmake即可解决 来源: oschina 链接: https://my.oschina.net/u/3732258/blog/4393296

安装 SeaFile 客户端

时光怂恿深爱的人放手 提交于 2020-07-29 06:32:20
操作系统:优麒麟 Ubuntu Kylin 20.04 LTS 适用架构:AMD64、ARM64(鲲鹏、飞腾) 方法1、从优麒麟官方的软件仓库安装 sudo apt install seafile-gui 方法2、自行编译 下载源代码 https://github.com/haiwen/seafile-client/releases 安装一些依赖 一次性全部安装 sudo apt install cmake gcc g++ qt5-default qt5-qmake qttools5-dev qttools5-dev-tools sqlite3 libsqlite3-dev libjansson-dev libsearpc-dev libseafile-dev libevent-dev doxygen-gui graphviz libssl-dev 分步骤安装依赖 sudo apt install cmake sudo apt install gcc g++ 查看版本:gcc --version,g++ --version。 sudo apt install qt5-default qt5-qmake qttools5-dev qttools5-dev-tools 查看版本:qmake --version。版本Qt >= 5.5 sudo apt install sqlite3

Qt类声明中Q_OBJECT的作用与报错解决

蓝咒 提交于 2020-05-08 05:55:43
2017-06-22 周四 大雨 北京 院里 新建作图类,继承自QCUstomPlot类 因为需要同时作8张图,都要单坐标缩放的功能,因此想干脆新建一个类,继承自 QCUstomPlot ,把需要的功能都加上。类名取为 QCUstomPlotPlus ,最终成功版类代码如下: //声明。explicit是为了禁止隐式转换。 class QCustomPlotPlus : public QCustomPlot { Q_OBJECT //重要! public: explicit QCustomPlotPlus(QWidget *parent = 0); private slots: void mousePressFun(); void mouseWheelFun(); }; //函数定义 //构造函数:继承自QCustomPlot,所以用QCustomPlot(parent)。 QCustomPlotPlus::QCustomPlotPlus(QWidget *parent) : QCustomPlot(parent) { //设置单坐标方向缩放和拖拽 bool t1 = connect(this, SIGNAL(mousePress(QMouseEvent*)), SLOT(mousePressFun())); bool t2 = connect(this, SIGNAL

Qt 出现“undefined reference to `vtable for”

心不动则不痛 提交于 2020-05-08 04:54:57
在QT中定义了一个线程类,继承自QThread, 在类中未加 Q_OBJECT 时编译正常,加入后报错如下: undefined reference to `vtable for myThread' 在串口下,手动make,无错误。 百度后得知: 一: 预编译器打开宏Q_OBJECT,声明若干个由moc处理(implement)的成员函数。 如果得到类似于“undefined reference to vtable for LcdNumber”的编译错误(if you get compiler errors along the lines of "undefined reference to vtable for LcdNumber"),你可能是忘记了执行moc,或者忘记了将moc输出加入到link命令里。 某一个类中如果加入Q_OBJECT后,则link时提示:undefined reference to vtable for "xxx::xxx".删掉它则没有任何问题. 解决:尝试(1):把所有的obj文件和uic文件删除,重新编译.仍然失败. 去trolltech的mail lists找到原因: 因为qmake生成Makefile的时候,这个类的头文件中并没有Q_OBJECT,所以在相应的Makefile里面并没有用moc xxx.h命令,最终导致链接失败.重新运行qmake

Qt 学习之路 2(4):信号槽

巧了我就是萌 提交于 2020-05-06 03:54:43
Home / Qt 学习之路 2 / Qt 学习之路 2(4):信号槽 Qt 学习之路 2(4):信号槽 豆子 2012年8月23日 Qt 学习之路 2 110条评论 信号槽是 Qt 框架引以为豪的机制之一。熟练使用和理解信号槽,能够设计出解耦的非常漂亮的程序,有利于增强我们的技术设计能力。 所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,用自己的一个函数(成为槽(slot))来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作就会被自动触发。 (这里提一句,Qt 的信号槽使用了额外的处理来实现,并不是 GoF 经典的观察者模式的实现方式。) 为了体验一下信号槽的使用,我们以一段简单的代码说明: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 // !!! Qt 5 #include <QApplication> #include <QPushButton> int main ( int argc , char * argv [ ] ) { QApplication app ( argc , argv ) ;

Qt使用和常用代码

僤鯓⒐⒋嵵緔 提交于 2020-05-05 15:40:23
Qt使用和常用代码 https://blog.csdn.net/u014678728/article/details/101155667 Qt基础和库 QObject //删除 obj->deleteLater()或 delete obj deleteLater会等这次事件循环结束再释放内存 必须在运行事件循环的线程中调用 //类型转化 QObject *obj = new QTimer; // QTimer inherits QObject QTimer *timer = qobject_cast<QTimer *>(obj); // timer == (QObject *)obj QAbstractButton *button = qobject_cast<QAbstractButton *>(obj); // button == 0 要转化的类必须继承QObject和声明Q_OBJECT宏 //查找子类 QList<QWidget *> widgets = parentWidget.findChildren<QWidget *>("widgetname"); QList<QPushButton *> allPButtons = parentWidget.findChildren<QPushButton *>(); QList<QPushButton *>