![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
QT
QT
keep study
这个作者很懒,什么都没留下…
展开
-
libusb编译和Qt环境配置libusb
1、下载libusb,下载网址:https://sourceforge.net/projects/libusb/2、Windows下编译libusb,Visual Studio 2017打开libusb_2017.sln。解压下载下来的libusb压缩包,包含ibusb_2017.sln的路径是:libusb-1.0.23/libusb-1.0.23/msvc/libusb_2017.sln。3、编译环境我选择的是Debug Win32。4、编译完成后,在libusb-1.0.23/libusb-1原创 2021-12-27 22:58:13 · 2513 阅读 · 0 评论 -
发送自定义事件
QT总可以在程序中自主发送事件阻塞型事件发送事件发送后需要等待事件处理完成非阻塞型事件发送事件发送后立即返回事件被发送到事件中等待处理事件被发送到事件队列中等待处理Qt程序程序能够自主发送系统事件QApplication类提供了支持事件发送的成员函数sendEvent()发送事件后需要等待事件处理完成postEevent()发送事件后立即返回void Widget::testSendEvent(){ QMouseEvent dbcEvt(QEvent::MouseBut原创 2021-12-21 16:44:32 · 95 阅读 · 0 评论 -
QPixmap的用法
QPixmap类是一种 off-screen 图像表示形式,可以用作绘画设备。使用QLabel或QAbstractButton的子类之一(例如QPushButton和QToolButton),可以轻松地在屏幕上显示QPixmap。QLabel具有pixmap属性,而QAbstractButton具有icon属性。 1、直接加载图片显示 ```cpp QLabel *boatIcon = new QLabel(this); boatIcon->setPixma原创 2021-11-02 16:17:53 · 1984 阅读 · 0 评论 -
QImage的用法
QImage提供了几种加载图像文件的方法:(1)构造QImage对象Image myImage1 = QImage(filename); 根据文件名打开图像支持的图片格式是:(2)QImage(uchar *data, int width, int height, Format format …)用数据构建一个图像,例如:QImage nImage((uchar *)mAVFrameRGB->data[0],mTargetWidth,mTargetHeight,QImage::Form原创 2021-11-02 15:50:00 · 11597 阅读 · 0 评论 -
QImage与QPixmap区别
一、不同平台,依赖、存储不同QPixmap依赖于硬件,QImage不依赖于硬件。在X11, Mac 以及 Symbian平台上。QImage: 因为它是存储在客户端,往QImage上绘图比较快,但显示它则比较慢。QPixmap: 具体实现是依赖于系统的,它是存储在服务器端,往QPixmap上绘图比较慢,但显示它则比较快。但在Windows平台上则是是一样的,因为它们都存储在客户端,并不使用任何的GDI资源,可能看起来并没有多大区别。目前的Qt会把QPixmap都存储在graphics memory中原创 2021-11-02 11:43:55 · 1232 阅读 · 0 评论 -
QT布局管理器--2
11.QT-布局管理器(Box,Grid,Form,Stacked)布局管理器简介QT中提供了对界面组件进行布局管理的类,用于对界面组件进行管理,能够自动排列窗口中的界面组件窗口大小变化后,便会自动更新界面组件的大小。布局管理器可以自定义,从而达到更加个性化界面布局的效果布局管理器可以相互嵌套,完成所有常用的界面布局QLayout是Qt中布局管理器的抽象基类,只能使用它的子类,如下图所示:QBoxLayout水平/垂直布局QBoxLayout有两个子类:QHBoxLayout(水平)和Q原创 2021-09-28 15:55:58 · 566 阅读 · 0 评论 -
QT布局管理器--对画框自适应和addStretch()用法(1)
1、让对话框大小总是以最合适的大小显示。。。。 label = new QLabel(QObject::tr("初始文本")); label->setMaximumWidth(100); /*自适应大小,可有可无*/ label->adjustSize(); /*自动换行*/ label->setWordWrap(true); button = new QPushButton(tr("改变文本")); QHBoxLayou原创 2021-09-28 11:30:32 · 467 阅读 · 0 评论 -
QGroupBox
是什么: QGroupBox为构建分组框提供了支持。分组框通常带有一个边框和一个标题栏,作为容器部件来使用,在其中可以布置各种窗口部件。布局时可用作一组控件的容器,但是需要注意的是,内部必须使用布局控件(如QBoxLayout)进行布局。 QGroupBox继承关系:怎么用 topLeftGroupBox = new QGroupBox(tr("Group 1")); radioButton1 = new QRadioButton(tr("Radio button 1"原创 2021-09-26 18:27:51 · 196 阅读 · 0 评论 -
Qt平台下C++内存管理 2021-08-10
01 编程碎念我的编程观念,是在公司砖海中,受导师和大咖影响逐步形成。文中观点均来源于真实的技术实践,部分理念也是继承前人的设计成果,如有侵犯的地方请告知。在此特别感谢给予我点拨的人,站在大咖的肩膀上,让我们看得更远。文中提到的编程观念,大部分是基于C++实现的基础技术,有Qt框架相关的,也有设计模式、面向对象相关的。可能大家会想,现在都是AI云的时代了,这些太老了。但我认为,这些才是编程的基础,这就是正确的编程世界观。02 内存管理某日,我在调试bug的时候,发现Qt源码中已经少有“”形式的指针了。回想原创 2021-08-10 15:43:57 · 354 阅读 · 0 评论 -
QT 全局参数初始化
app.h#ifndef APP_H#define APP_H#include "head.h"class App{public: static QString ConfigFile; //配置文件路径 static QString SendFileName; //发送配置文件名 static QString DeviceFileName; //模拟设备数据文件名 static QString PortName...原创 2020-11-26 15:01:07 · 1055 阅读 · 0 评论 -
battery 电池充电控件
设计一个BatteryItem这个类,继承QWidget,重写void paintEvent() 函数,利用Qpainter 画笔画出电池void BatteryItem::paintEvent(QPaintEvent *e){ QPainter painter(this); painter.setPen(QPen(borderColorStart, 2)); painter.drawRoundedRect(5, 5, width()-20, height()-1...原创 2020-11-21 20:29:22 · 320 阅读 · 0 评论 -
移植QT5.6.0到嵌入式linuxS3C2440单板
https://blog.csdn.net/fengyuwuzu0519/article/details/73129643目前网上关于QT5.6的移植教程还不完善,本博客详细说明QT5.6.0移植到嵌入式linux单板的详细步骤。并将移植好的分享在GitHub上。一、实验环境(1)编译工具链arm-Linux-gcc-4.4.3.tar.gz(2)linux系统linux-3.4.2(3)虚拟机16.04.1-Ubuntu(4)busyboxbusybox-1..转载 2020-10-27 15:54:14 · 490 阅读 · 1 评论 -
Qt 的多语言支持的翻译机制
https://www.cnblogs.com/lsgxeva/p/12557656.html本节主要讲解如何进行 Qt 的翻译。希望本文内容能给新手对 Qt 翻译一个全面的认识。本文结构如下:概述 我们到底在翻译什么? 和翻译相关的 Qt 类 翻译流程框架图 如何进行翻译? 第一步:写规范的代码 用 QString 包裹不需要翻译的文本 用 tr() 包裹需要翻译的文本 定义上下文 如何翻译非 Qt 类 第一种:利用 QCoreApplication::.转载 2020-10-27 09:15:54 · 2621 阅读 · 3 评论 -
QSS Demo
效果图如下步骤:1、新建一个文件把后缀改为.qss,然后在里面写qss 语法2、新建资源管理器,把qss文件添加进去源码如下main.c#include "widget.h"#include <QGridLayout>Widget::Widget(QWidget *parent) : QWidget(parent){ setGeometry(50,50,320,240); setObjectName("MyLoginFor...原创 2020-10-23 15:50:44 · 179 阅读 · 0 评论 -
QSS 语法
简述Qt样式表(以下统称QSS)的术语和语法规则几乎和CSS相同。如果你熟悉CSS,可以快速浏览以下内容。简述 样式规则 选择器类型 子控件 伪选择器 解决冲突 级联效应 继承性 Namespaces中的部件 设置对象属性样式规则QSS包含了一个样式规则序列,一个样式规则由一个选择器和声明组成,选择器指定哪些部件由规则影响,声明指定哪些属性应该在部件上进行设置。例如:QPushButton { color: red }上面的例子中QPushButton是选..原创 2020-10-23 15:42:13 · 1303 阅读 · 0 评论 -
QT 的 QSS 的基本概念
https://www.cnblogs.com/davesla/archive/2011/01/30/1947928.html借用css 的灵感, Qt也支持Qt自己的css, 简称qss。同css 相似,qss的主要功能与最终目的都是能使界面的表现与界面的元素分离,即质与形的分离,就如同一个人可以在不同的时候穿上不同的衣服一样,css机制的引入,使得设计一种皮肤与界面控件分离的软件成为可能,应用程序也能像web界面那样随意地改变外观。一、QSS语法同css一样,他也有由一个selector与一个de转载 2020-10-23 11:58:54 · 4501 阅读 · 0 评论 -
第35课 - 文本编辑器中的数据存取
原创 2020-10-21 08:49:10 · 83 阅读 · 0 评论 -
第34课 - 缓冲区操作与目录操作
QBuffer类为QByteArray提供了一个QIODevice接口#include <QtCore/QCoreApplication>#include <QBuffer>#include <QByteArray>#include <QDataStream>#include <QDebug>void write_buffer(int type, QBuffer& buf...原创 2020-10-20 11:21:44 · 71 阅读 · 0 评论 -
QByteArray详解
https://blog.csdn.net/ecourse/article/details/80575691QByteArray类提供了一个字节数组。QByteArray在串口通讯中经常被使用,有一定必要较为全面详细的对QByteArray进行阐述。本文通过以下几个部分加以介绍:1. 初始化2. 访问与赋值3. 添加、删除、插入与替换操作4. 查找与比较5. 数据转换与处理1 初始化2 访问与赋值 访问QByteArray主要有4中方式,分别为[]、at()、..转载 2020-10-20 11:10:36 · 7464 阅读 · 1 评论 -
第33课 - 文本流和数据流
把Qtring 和 浮点类型的数据保存到文件,使用QFile的 write方式很麻烦,但使用使用辅助类 QTextStream 和 QDataStream就很简单#include <QtCore/QCoreApplication>#include <QFile>#include <QDebug>int main(int argc, char *argv[]){ QCoreApplication a(ar...原创 2020-10-20 10:39:12 · 153 阅读 · 0 评论 -
第32课 - Qt 中的文件操作
QT 借鉴了linux一切皆文件的思想,把所有的外设串口、网口等都可以统一为文件的操作流程:打开、读、写、关闭。有类图可知道,socked(tcp、udp)都是可以看做IO操作,遵循文件的打开 配置 、读、写、关闭的流程#include <QtCore/QCoreApplication>#include <QFile>#include <QByteArray>#include <QDebug>...原创 2020-10-20 10:26:41 · 79 阅读 · 0 评论 -
QTextStream和QDataStream的区别
https://blog.csdn.net/kelsey11/article/details/47004179QTextStream和QDataStream都是面向数据流的,都适用于QIODevice,但是他们的侧重点不同。可以这么说,QTextStream能做的事情QDataStream都能做。QTextStream 侧重于向QIODevice文本读写,这里所说的文本指的是普通的简单的QChar,QString,QLatin1Char,int等等之内的,和C语言中写文件或者网络传输的时候,先将.转载 2020-10-20 10:06:14 · 917 阅读 · 0 评论 -
QT 文件操作 QFile
输入/输出设备QIODevice 类是 Qt 中所有 I/O 设备的基础接口类,为诸如 QFile、QBuffer 和 QTcpSocket 等支持读/写数据块的设备提供了一个抽象接口。。文件QFileQFile类提供一个用于读/写文件的接口,它是一个可以用来读写文本文件、二进制文件和Qt资源的 I/O 设备。QFile可以单独使用,也可以和QTextStream 或者QDataStream 一起使用。一个文件可以使用open()打开,使用close()关闭,使用flush()刷新.转载 2020-10-19 19:20:16 · 495 阅读 · 0 评论 -
给QT的按钮等控件添加图表的方法
QAction* action = new QAction(); action->setToolTip("open"); action->setIcon(QIcon("/home/osrc/NotePad/pic/open.png"));//指定绝对位置,就可以不添加资源文件了(如果是指定相对位置就需要添加资源文件)...原创 2020-10-19 14:56:33 · 366 阅读 · 0 评论 -
Qt窗口的菜单栏怎么显示不出来
Qt窗口的菜单栏怎么显示不出来 因是Ubuntu本身的问题,窗口必须最大化才能看到菜单栏,几乎所有外部程序都这样的!原创 2020-10-19 13:35:39 · 2155 阅读 · 1 评论 -
第27课 - 应用程序中的主窗口
#include <QtGui/QApplication>#include "MainWindow.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow* w = MainWindow::NewInstance(); int ret = -1; if( w != NULL ) { w...原创 2020-10-18 16:30:33 · 110 阅读 · 0 评论 -
第23课 - 布局管理器(二)
#include <QtGui/QApplication>#include "Widget.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; w.show(); return a.exec();}#...原创 2020-10-18 15:42:48 · 197 阅读 · 0 评论 -
第24课 - 布局管理器(三)
#include <QtGui/QApplication>#include "Widget.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; w.show(); return a.exec();}#include "Widget.h"#include <QLineEdit&...原创 2020-10-18 15:36:20 · 83 阅读 · 0 评论 -
25课 - 布局管理器(四)
原创 2020-10-18 15:15:26 · 66 阅读 · 1 评论 -
第26课 - 布局管理综合实例
布局管理器:QVBoxLayoutQVBoxLayout 创建的时候不指定 parent ,因为是嵌套的关系,窗口只有一个布局控制器子类其他是这个的子。正确应该如此: QVBoxLayout* vLayout = new QVBoxLayout(); QHBoxLayout* hLayout = new QHBoxLayout(); vLayout->addLayout(&sLayout); vLayout->a...原创 2020-10-18 15:03:08 · 107 阅读 · 0 评论 -
2020-10-17
#include <QtGui/QApplication>#include "Widget.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; w.show(); return a.exec();}#include "Widget.h"#include <QD...原创 2020-10-17 16:05:23 · 108 阅读 · 0 评论 -
第20课 - Qt 中的标准对话框(中)
#include <QtGui/QApplication>#include "Widget.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; w.show(); return a.exec();}#include "Widget.h"#include <QDebug>...原创 2020-10-16 17:11:50 · 108 阅读 · 0 评论 -
第19课 - Qt 中的标准对话框(上)
#include <QtGui/QApplication>#include "Widget.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; w.show(); return a.exec();}#include "Widget.h"#include <QDeb...原创 2020-10-16 17:07:55 · 111 阅读 · 0 评论 -
第17课 - 对话框及其类型
对话框的类关系图:QDialog有:是其他对话框的的父类。#include "dialog.h"#include <QApplication>#include <QDebug>int main(int argc, char *argv[]){ QApplication a(argc, argv); Dialog dlog; int r = dlog.exec(); i...原创 2020-10-16 15:24:25 · 216 阅读 · 0 评论 -
QWidget 的类关系
QDialog :是对话框的父类。对话框的类型有进度条对话框、颜色对话框、错误消息提示框、文件对话框、输入对话框、消息提示对话框。原创 2020-10-16 16:48:43 · 193 阅读 · 0 评论 -
第69课 - 图像处理与绘制
#include <QtGui/QApplication>#include "Widget.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; w.show(); return a.exec();}#include "Widget.h"#include <QPainter>#in...原创 2020-10-15 18:28:06 · 113 阅读 · 0 评论 -
第70课 - 文本绘制技巧
#include <QtGui/QApplication>#include "Widget.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; w.show(); return a.exec();}#include "Widget.h"#include <QPai...原创 2020-10-15 14:59:59 · 96 阅读 · 0 评论 -
第85课 - 多线程与界面组件的通信(下)
#ifndef WIDGET_H#define WIDGET_H#include <QtGui/QWidget>#include <QPlainTextEdit>#include "UpdateThread.h"class Widget : public QWidget{ Q_OBJECT UpdateThread m_thread; QPlainTextEdit textEdit;public: ...原创 2020-09-25 11:50:09 · 99 阅读 · 0 评论 -
第84课 - 多线程与界面组件的通信(上)
原创 2020-09-24 20:36:10 · 63 阅读 · 0 评论 -
第83课 - 另一种创建线程的方式(推荐此方法)
《Qt 实验分析教程》 – 第 83 课勘误 在 Qt 中通过组合的方法实现多线程类是一种常用的设计模式,其原理是直接 响应 started() 信号,在子线程中执行指定的线程体函数(tmain() 槽函数)。 AnotherThread::AnotherThread(QObject *parent) : QObject(parent) { moveToThread(&m_thread); connect(&m_thread, SIGNAL(started()),原创 2020-09-24 20:20:08 · 110 阅读 · 0 评论