Qt 早期是一个跨平台 C++ 图形用户界面应用程序开发框架,内部封装了大量的跨平台库,可以在 linux、windows、android、ios 等平台运行其编写的程序,并且还提供了一个强大的 IDE 工具 名为 Qt Creator。Qt 让我们对界面的编程变为“对象与对象之间相互作用”的结果。所以不要再像 C 语言一样去创建或编写 Qt 的程序,下面我们就简单实现一个 Qt 的界面程序。
分别介绍Qt4与Qt5版本将QML界面嵌入到QWidget中使用。 Qt4使用方法 项目文件添加 QT+=declarative QDeclarativeView *view = new QDeclarativeView; view->setSource(QUrl::fromLocalFile("file.qml")); view->show(); Qt5使用方法 项目文件添加 QT+=quickwidgets QQuickWidget *view = new QQuickWidget; view->set
1.如果提示QSqlDatabase: QMYSQL driver not loaded 解决方法: 在确保qt和mysql同位数的情况下,将mysql\lib中的libmysql.dll复制到Qt\Qt5.6.1\5.6\mingw49_32\bin中。
一直都想搞个安卓版本的视频监控程序,很早以前弄过一个,采用的是早期的ffmpeg2的lib文件,对于现在众多的网络流媒体格式,支持有限,而且新的Qt编写安卓程序,结构上也变动了,新的安卓系统权限要求也和以前处理不一样了,现在需要动态授权,以前是直接配置文件写好需要哪些权限就行,所以近期特意全部重写了一遍安卓版本的视频监控程序,内核还是采用的ffmpeg,换成了最新的ffmpeg4版本,在ubuntu系统上用安卓编译器编译了对应的lib文件,然后放到win上编写Qt+安卓程序。
利用Qt元对象系统的特性实现对枚举类型与字符串的互相转换功能。 1 使用方法 项目文件添加 QT+=core; 创建类 Car继承于 QObject并使用 Q_OBJECT宏; 类内添加枚举 Color; 使用 Q_ENUM宏将 Color枚举注册到元对象系统中; 使用 QMetaEnum::fromType获取枚举的 QMetaEnum对象; 使用 valueToKey或 keyToValue进行转换操作。 2 枚举转字符串 接口: const char *QMetaEnum::valueToKey(in
有时候,我们需要根据本地的配置文件,去配置我们的程序,在其他语言中,可能需要自己去写读写文件的逻辑,而在QT中,就直接提供了QSettings类,简化了我们的操作!
嵌入式岗位,是介于硬件工程师和软件工程师之前的一个岗位。他的工作内容需要他既懂代码编写,也会硬件板子。
对于Qt的初学者来说,Qt有很多不熟悉的地方,安装和使用时,都会遇到各种各样的“坑”。这些坑,如果经历过一次,就会发现其实是很简单的问题。但是如果不熟悉,那么可能折腾很久也没解决。因此我把我自己遇到的(也是后来常常被问到的)一些问题放在这里,供大家参考、讨论。
Qt 是一个跨平台的C++图形用户界面应用程序框架。它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。
源码下载地址: https://download.csdn.net/download/qq_37997682/10453294
作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这篇文章来回答一下。 在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会)。C语言要学到什么程度呢?越熟当然越好,不熟的话也要具备基本技能。比如写一个数组排序、输入数字求和什么的。学C语言唯一的方法是多写程序多练习,编译出错没关系,自己去解决;执行出错没关系,自己去分析。以前我是用VC来练习C语言的,经常去尝试着写一些C语言竞赛的题目。它们是纯C、纯数学、纯逻辑的题目,不涉及界面这些东西,很适合煅炼你的编程能力。 回到主题,首先我们要明白你的目的是什么,大概来说所谓嵌入式Linux可以分为两部分:底层系统、应用开发。如果你是想做应用开发,那么你去把C语言、数据结构、JAVA什么的学好吧。嵌入式应用开发和PC上的应用开发并没有什么特别要注意的。也许你说在嵌入式上要做些优化,是的,要优化,但是未经优化的程序和PC上的程序开发没什么差别。另外,当你有能力去优化时,你已经不用来问这个问题了。具体到某个例子,比如说开发界面,在PC上我们用VC;在嵌入式Linux里也许我们用QT也许用Android,这个时候你应该去学学QT、Android的编程。但是基础还是C或JAVA,在此基础上去熟悉它们的接口。你学过VC的话,也是要花时间去了解那些类、控件的。
VTK需要OpenGL3.0或更高版本的驱动,但虚拟机下的Ubuntu不支持OpenGL3.0,或者自己按网上教程配置之后也能支持,但过程相当繁琐,本人试验失败。
Qt SQL模块使用驱动程序插件(plugins)与不同的数据库API进行通信。由于Qt的SQL模块API与数据库无关,因此所有特定于数据库的代码都包含在这些驱动程序中。Qt提供了几个驱动程序,也可以添加其他驱动程序。提供驱动程序源代码,可用作编写自己的驱动程序的模型。
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说buildroot是什么_yocto buildroot,希望能够帮助大家进步!!!
最近在学习音视频开发相关的内容,故硬件选型是非常重要的,加上芯片缺货,为了保证未来芯片供应链正常,结合预测趋势以及对芯片行业相关的定量分析 ,最终我选择了瑞芯微刚推出不久的芯片:RV1126_RV1109系列,为了高效学习,我将瑞芯微平台SDK里提供的docs目录下的文档做了分类整理和汇总,以便后期在工作中用到相应的知识可以很快的查阅到相关的资料高效完成调试和开发:
Qt Quick 给我们提供了非常方便的配置文件管理功能,它不仅仅可以在 C++ 中访问,也可以在 QML 中直接访问,最近在看 Qt Examples 目录下的 gallery 项目示例时,虽然知道用的是 QSettings 保存的持久化数据,但是不知道配置保存在哪里了,遂到 Qt 官网查询了一下,有英文阅读能力的可直接参考官网:https://doc.qt.io/qt-5/qsettings.html,以下为照搬翻译:
.ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了。但在某些情况,还是要直接编辑ini才方便,一般只有很熟悉windows才能去直接编辑。
armv7是ARMv7-A指令集架构的缩写,其中“A”表示“应用程序级别”。ARMv7-A架构是ARM架构的第七代,支持32位指令和地址。它是2011年前的大多数ARM芯片所采用的架构,包括Cortex-A7、Cortex-A9和Cortex-A15等。
脚本同级目录下有一个标准的项目工作目录,此目录是为了提供一个标准的工程项目模板而存在的,结构如上述脚本构建的标准项目目录。而脚本的工作原理就是通过读入你设置的工程名和可执行文件名之后复制一份标准工程目录然后通过字符串定位修改相应值从而产生一个新的通用编辑器的工程了。
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QHostInfo组件实现对主机地址查询功能。
/proc –proc文件系统是内核与用户的接口,将内核的一些信息反映到此目录下
第一个程序 - Hello QT 首先写main.cpp: #include <QApplication> #include <QMainWindow> #include <QPushButton> int main(int argc, char* argv[]) { QApplication a(argc, argv); // Qapplication表示一个应用程序,而它的成员函数exec()则用来执行程序以及消息处理 QMainWindow w; //
在之前的博客中 , 安装了 VS2015 , Qt 5.14.0 , CDB 调试器 , 并在 Qt 中配置了 MSVC 编译器 和 CDB 调试器 ;
在两年前,我搞了一期在“Linux下玩minecraft的视频”,这期视频也许观看人数并不多(其实视频录制时间过长,并且会成功浪费你人生中宝贵的22分48秒。),但是还是有些人想在Linux下玩Minecraft Bedrock的(因为我收到了一些私信)。
进行整体编译时遇到相应的错误,这个是为了跟RK原厂SDK同步的代码,由于我这个是从第三方买来的,故下面这个功能需要屏蔽掉。
既然Qt是跨平台的,那么能不能在嵌入式平台实现一下呢?最近刚好看到,ST官方在开展创客大赛活动,就买了米尔科技的YA157C开发板移植一下。
上篇文章:嵌入式Linux-Qt环境搭建,介绍了如何搭建在Linux开发板中搭建Qt的运行环境,并测试了Qt自带的例程。
安装程序生成工具就是将应用程序和依赖的文件打包到一个可执行的安装程序种,可以简化用户的安装流程和体验,但开发的软件依赖和配置过于繁杂的时候,制作一个安装包就特别必要,所以需要简单学习一下安装程序生成工具,以下是常见的安装程序生成工具:
分别是: 1、Makefile:分布在 Linux 内核源代码根目录及各层目录中,定义 Linux 内核的编译规则; 2、配置文件(config.in):给用户提供配置选择的功能; 3、配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面、基于 Ncurses 图形界面以及基于 Xwindows 图形界面的用户配置界面,各自对应于 Make config、Make menuconfig 和 make xconfig)。
原文链接:https://winter.blog.csdn.net/article/details/129527522
本文分享嵌入式Linux系统使用的操作手册,其中详细内容,主要涵盖了:LinuxSDK安装、Linux系统镜像编译/生成、Linux系统文件替换说明、U-Boot命令说明和环境说明、内存分配说明、Linux设备驱动说明、主频调节说明、文件系统使用说明等,感兴趣的嵌入式工程师朋友可以查阅。
综合资料百度云:https://pan.baidu.com/s/1kJdJ6xc12Yg4rPby_MatDA 提取码:4u7d
1.使用准备 在pro中, 添加QT+= charts 然后在界面头文件中添加头文件并声明命名空间,添加: #include <QtCharts> QT_CHARTS_USE_NAMESPACE 2.QChart之曲线图 绘制曲线图需要用到3个类 QSplineSeries: 用于创建有由一系列数据组成的曲线.类似的还有QPieSeries(饼图数据). QLineSeries(折线数据) QChart: 图表界面,用来管理图表内容,颜色,大小等 QChartView: 负责显示QChart 效
布局另存是数据可视化大屏界面电子看板系统中的额外功能之一,主要用于有时候用户需要在现有布局上做个微调,然后直接将该布局另存为一个布局配置文件使用,可以省略重新新建布局重新来一次大的调整的工作,此功能主要是用到了配置文件的保存,另存为一个不同名字的配置文件即可,属于非常简单的功能,在代码上来讲,其实Qt的配置文件类QSettings使用起来不要太方便,不仅支持WIN的注册表的读取写入,还支持跨平台的INI文件,说白了其实就是个文本文件,个人比较喜欢用INI文件作为配置文件,这样一方面跨平台,本人平时主要在嵌入式linux上做开发,INI文件是做好的选择。
开发项目在嵌入式平台上使用MiniGui作为用户界面开发工具,在工作之余准备在ubuntu14.04上搭建一个测试环境,这样代码测试起来比较方便。
rootfs翻译过来就是根文件系统。顾名思义,它属于文件系统范畴,文件系统的作用就是用来管理、储存文件的。文件的概念对于linux来说很重要,不是有一句话叫”一切皆文件“,Linux的一切行为与操作都反映在文件上。 上文我们编译的linux源码提供的是操作系统的“灵魂”(管理和调度逻辑),但还是需要“肉身”(文件系统)来落地实现。所以,你只是编译烧录kernel,是无法正常启动的,还需要再给它搭配一个文件系统。
能够新建布局,也是数据可视化大屏界面电子看板系统中的必备功能之一,新建布局这样的功能一般做到右键菜单中,单击新建布局菜单,弹出输入框要求输入新的布局的名称,为了更符合国情,直接支持中文名称,保存成配置文件直接中文名称命名,这样方便用户理解,Qt5以来对乱码的问题解决的就比较好了,不像Qt4时代稍不留神就乱码了,Qt5只要保证源码文件utf-8编码基本上就很少遇到乱码问题了。新建布局必须要有个默认的窗体排列,Qt中的dock窗体,默认布局会以窗体的sizehint作为大小参照标准,也不一定是完全正确的,还跟窗体中的子控件有关系,不过这些都不影响布局以后重新从配置文件加载的布局,QMainWindow提供saveState()函数直接保存当前窗体的所有布局位置大小等信息到配置文件,至于配置文件的内容格式,那是人类无法理解的格式,反正我是看不懂,这些都没有关系的,你重新用restoreState()函数加载读取配置文件的信息时,会自动应用,这样就很爽很完美了。
执行完命令之后,/usr/local/bin目录下会多出litecoin-cli、litecoind、litecoin-qt、litecoin-tx、test_litecoin几个可执行文件。
Manjaro之前用过一段时间,后来一直在学习控制类器件,得用win所以荒废了一段时间,现在放假,正好再回来研究一下物联网方向,再用一用Manjaro。安排。。
用onvif协议来对设备的网络信息进行获取和设置,这个操作在众多的NVR产品中,用的很少,绝大部分用户都还是习惯直接通过摄像机的web页面进去配置,其实修改网络配置的功能在大部分的NVR中都是具备的,网络的参数主要包括IP地址、子网掩码、网关地址、DNS解析地址、NTP地址、网卡信息、网络协议等,这些都可以通过不同的onvif命令来获取和设置,一直没有搞懂为啥这些要分开不同的命令去处理,其实大可以合并成一个命令嘛,搞得设置个网络信息还要post好多次的数据才行。
前段时间我又把Gnome桌面版的manjaro更新崩溃了,自己修复完了以后发现还是有不少小问题。鉴于博主强迫症比较严重无法忍受,于是换了各种桌面版的manjaro最终决定用回第一次用过的kde桌面版本。由于每一次更新都要配置一堆东西,比较麻烦,记录一下初始使用的过程,以便于后续自己重装系统不用再继续百度了emmmm。更新时间2019-11-24
在数据可视化大屏界面电子看板系统中,前期为了使用目标客户机,调整间距是必不可少的工作,QMainWindow中的QDockWidget,会默认生成布局和QSplitter调整宽高大小,鼠标移动到模块之间的缝隙处,鼠标指针会形成调整大小间距的那种,上下左右拉动就可以调整大小了。Qt的dock默认底部布局是被全部填充的,即一旦产生了底部Dock,则底部的左侧和右侧也属于底部布局,此时需要用setCorner方法来把这个布局给切掉,比如底部布局的左侧部分,可以切掉当做左侧布局使用,setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);底部布局右侧部分,可以切掉当做右侧布局使用,setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);这样左右两侧的布局就有更大的空间来放置窗体了,这样可能更适合大部分的应用场景。如果只是切掉了一部分,比如切掉了右侧,则左侧和中间部分当做底部布局,放置一个长条状的大窗体,也是非常美观的,主要看具体的窗体大小了。
视频中的图片的配置参数一般有亮度、饱和度、对比度、锐度等,以前一直以为这些需要通过厂家的私有协议SDK来设置才行,后面通过研究Onvif Device Manager 和 Onvif Device Test Tool 这两个onvif开发的必备工具以后,发现onvif协议也具备了修改 亮度、色彩度、饱和度这三个参数,当然这三个参数我见过的摄像机厂家(主流的十几种)都具备,还有些大厂做的设备还提供了其他详细图片参数的设置比如ICAT。
最终使用的是这样的结构:ffmpeg从USB免驱相机中获取视频流,然后推流到nginx服务器上。最后Qt使用WebView拉取Url中的视频流。
该文章介绍了一个基于Qt和OpenCV的图像处理小软件,包括软件的安装、使用示例和代码下载。
领取专属 10元无门槛券
手把手带您无忧上云