QT编程学习笔记

QT学习笔记(网络编程) 将数据按协议格式封装成网络数据包。:从接收的字节流中解析出完整数据包。 阅读详情

 

前些时间,学过近1000行左右的qt代码,基本上属于现学现写, 个人也总结了这方面的笔记,大多数的资料总结查询来自网络。

 

 

一 如何添加自定义的slot 函数。

以添加recordOnRadioButtonClickedHandle函数为例。

1 头文件里定义recordOnRadioButtonClickedHandle函数,并在.cpp 文件里实现函数主体内容。

setuppage.h

public slots:

void recordOnRadioButtonClickedHandle();

 

setuppage.cpp

void SetupPage::recordOnRadioButtonClickedHandle()

{

printf("recordOnRadioButtonClickedHandle handle!/n");

return;

} 

2 与信号连接。

connect(recordOnRadioButton,SIGNAL(clicked()),this,SLOT(recordOnRadioButtonClickedHandle()));

 

3 对文件里添加

Q_OBJECT

4 重新生成makefile 

 

 

 

二 Qt 中如何使用外部链接库

在.pro 文件使用情况如下所示。

LIBS=./cores/libcores.a

如何将qte 默认的绿色背景设置为透明

Qte 启动时会将背色设置为绿色背色, 这个颜色实在是太恶心了, 现需要OSD层与视频层叠加显示,需要设置背色绿色为透明。我的实现方法如下

1 设置framerbuffer,定义TRANSPARENT_COLOR颜色不显示。

 

        stColorKey.bKeyEnable = HI_TRUE;

        stColorKey.u32Key = TRANSPARENT_COLOR;

        stColorKey.bMaskEnable = HI_FALSE;

        stColorKey.u8BlueMask = 255;

        stColorKey.u8RedMask = 255;

        stColorKey.u8GreenMask = 255;

 

        if (ioctl(m_Fb.FrameBufferFd, FBIOPUT_COLORKEY_HIFB, &stColorKey) < 0)

        {

            return -OEC_HARDWAREERROR;

        } 

注:TRANSPARENT_COLOR 颜色的RGB值分别为255,0,0

 

三 设置QT的背景色为TRANSPARENT_COLOR

 

QBrush *BackColor = new QBrush(QColor(255,0,0)); //设置背景颜色

QWSServer::setBackground(*BackColor); //应用背景颜色

 

四 布局的时候设置左,上,右,下的距离

我用红字圈不来的那哥们的回答确实很有用。还有vlolv那哥们的回答很准确的解释了我的疑问。也是,你既然要设定坐标为什么还让QT去layout,明摆了没事找事么。

jwvwv的两个方法我只试了setContentsMargins,发现其实很管用,查看文档,

void QWidget::setContentsMargins ( int left, int top, int right, int bottom )

Sets the margins around the contents of the widget to have the sizes left, top, right, and bottom. The margins are used by the layout system, and may be used by subclasses to specify the area to draw in (e.g. excluding the frame).

Changing the margins will trigger a resizeEvent().

噢,原来就是布局的时候设置实际的距离左,上,右,下的距离,这样其实就基本实现了我的要求。我设置坐标其实不是死的,只是想让他距离上边框有一定的距离。

 

五 如何加载图片

有两种方法,一种是加载直接路径

1 加载图片的直接路径,例如图片在当前文件夹下的image目录下。

image.load("./images/mainwindow_background.png");

 

2 加载图片的相对路径

image.load(":./images/mainwindow_background.png");

当以此种形式加载图片时,图片的路径也是要在qrc文件里进行定义的。

<file>images/mainwindow_background.png</file>

这样意义统一更改图片的路径, 当切换主题的时候只用切换qrc文件便可。

 

六 在Qt4中如何为对话框设置背景?

 

答:这个问题值得总结一下。大致有以下的思路和方法:

 

1.重写paintEvent()事件

 

在该事件中用画笔QPainter重画整个背景。该方法比较复杂,不建议初学者采用。

 

2.使用调色板类QPalette

 

//以下代码中pWidget为指向要设置的widget的指针。   

QPalette palette = pWidget->palette();   

palette->setBrush(QPalette::Active,QPalette::Window,QBrush(Qt::red));   

pWidget->setPalette(palette);  

pWidget->setAutoBackground(true);   

 

推荐使用这种方法,大家可以查看一下setBrush()方法的定义:

 

  Palette::setBrush ( ColorGroup group, ColorRole role, const QBrush & brush )  

 这个是一个重载版本,最为重要的是第二个参数,可以设置许多不同的类型。举例来说, 如果pWidget指向的是一个QListWidget或者QTextEdit对象,如果把第二个参数设置成QPalette::Text,则是设置其中文字的颜色;如果第二个参数是QPalette::BrightText,则是设置该对象被选中时,其文字的颜色;如果第二个参数QPalette::Bright则表示设置选中该对象时,高亮背景的颜色或者图片。该函数的功能是很强大的。

 

3.使用样式表。

 

  pWidget->setStyleSheet("background-color:blue;"); //设置背景颜色   

pWidget->setStyleSheet("background-image:url(:/folder/show.bmp);"); //设置背景图片此外,还有一些很有意思的方法,比如用setHtml(),insetHtml()这种用HTML语言的方式来指定的等等,大家可以多查查帮助文档搜索一下。

 

4.具体例子

 

  //设置为固定颜色 QPalette pal = pWidget->palette();   

pal.setColor(QPalette::Background, QColor(0,0,0)); //黑色   

pWidget->setPalette( pal ); //背景图片   

QPalette pal = pWidget->palette();   

pal.setBrush( QPixmap(图片文件名) ); //黑色   

pWidget->setPalette( pal );

 

 

Qt/QML编程之路:一个Qt工程的学习笔记(9) Qt的绘图系统允许使用相同的API在屏幕和其他打印设备上进行绘制,其中QPainter像画笔执行绘制的操作,QPaintDevice是一个二维空间抽象,像画板,允许QPainter在这个工作空间上进行绘制,QPaintEngine则提供了画笔(QPainter)在不同设备上进行绘制的统一接口,处于画笔和画板之间的统一通讯接口,这样画笔QPainter不用关心具体QPainterDevice是屏幕、什么尺寸的屏幕、什么类型的屏幕等信息。Qt按照对象树自动释放new的类指针,比如窗口、按钮等对象。 阅读详情

相关推荐

s9keaz128 UART Bootloader 单片机篇(上)

网络上充斥着各种各样的串口升级方案,基本都是基于Y-Mode协议下载。采用这种升级方案学习还是可以,用在产品上还是有点欠缺。如下载完成后,需要把时间发送到设备就不好搞了。如下这个设备返回的信息,最后一项就是固件更新时间。固件名称: KEA128编译时间固件版本: 1.0.3硬件版本: 1.0.3产品序列号功能名称: App固件更新时间串口升级演示视频。

一人科技 1796

Qt中直线的自定义子类(支持缩放、拖拽,父级场景无拖影)

在QT编程中,我发现画线的处理最复杂了。如果只是用QPaint的drawLine来做,自然简单。可是,实际项目中会希望线段可以拖拽、缩放。而拖拽功能,有QGraphicsLineItem已经为我们实现了,所以,我们会用这个类来创建线段。可惜,这个类没有为我们实现缩放功能,网上找到文章:《QGraphicsItem选中后,出现边框,可以拉伸》,首先感谢这篇文章的作者“LiuZnHi”,帮我解决了拖拽...

canlynetsky的博客 1616

康耐视 VisionPro CogImageFileTool(将获得的图像保存至文件或从文件中获取图像)工具

VisionPro CogImageFileTool(将获得的图像保存至文件或从文件中获取图像)工具

zhihuishuxia__的博客 2065

QT中的库类

如果使用QTextStream的operators,可以方便的读写words,lines 和numbers. 对一般的文本,QTextStream支持格式化对齐,格式化数字 等。open里的打开模式为QIODevice::WriteOnly、QIODevice::ReadWrite、QIODevice::Append这三种的话,文件不存在则会自动创建出一个空文件出来。其他打开模式就不行。创建的节点对象有一个 ownerDocument() 函数,该函数将它们与创建它们的上下文中的文档相关联。...

qq_51255530的博客 1348

endnote让参考文献整整齐齐

这篇文章主要是针对利用 endnote 插入参考文献时,参考文献第一行和后面的行对不齐的问题 下面是示意图 可以看到我们的参考文献对的整整齐齐的,比较好看。 下面介绍具体步骤 1、打开endnote。编辑我们使用的参考文献样式。我这儿是叫 ZZ_MODIFIED_GEEBINF 复制 2、找到布局,每个参考开头,将光标放在在参考开头后面,点插入字段,制表符 3、右下角悬挂式输出哪儿选择全部段...

雾隐雾现的至渝博客 5万+

保姆级教程:在Ubuntu 20.04上从零跑通AT128雷达实时点云(附PandarView 2安装避坑指南)

本文提供了一份详细的Ubuntu 20.04系统下AT128雷达实时点云配置教程,涵盖环境准备、脚本修改、PandarView 2安装及常见问题排查。通过逐步指导,帮助开发者解决权限、网络配置等难题,确保顺利实现雷达数据的实时可视化。特别附有PandarView 2安装避坑指南,适合新手快速上手。

weixin_30813225的博客 299

Qt基础编程

无

m0_60274660的博客 2465

别再只会用QTcpSocket了!手把手教你用QSslSocket为你的Qt网络应用加上SSL/TLS加密(附完整代码示例)

本文详细介绍了如何将Qt网络应用从QTcpSocket迁移到QSslSocket,实现SSL/TLS加密传输。通过对比API差异、解析核心机制和提供完整代码示例,帮助开发者快速掌握安全网络编程技巧,有效防范数据窃听和中间人攻击等安全风险。

weixin_30654583的博客 400

Qt学习笔记(三)网络编程

之前我们在Linux应用层的学习时提到了网络编程,本节是进行Qt下TCP / IP 客户端的编写。

sincerelover的博客 1433

手把手完整实现STM32+LORA组网网关+机智云平台+手机APP应用———第一节- 一主多从的LORA本地组网通信-实现从机采集温湿度与主机显示数据

本教程为《手把手实现STM32+LORA组网网关+机智云平台+手机APP应用》第一节。实现一个主机,两个从机的LORA组网通信。两个从机采集温湿度数据并通过LORA传输数据到主机,然后主机接收到两个从机数据后进行数据显示,本节通过PC串口助手显示两个从机的数据。 下一节将其主机接收的数据通过WIFI网关(ESP8266)传到机智云平台与手机APP。 本文讲解一主多从的LORA本地组网通信,串口助手进行数据展示。使用硬件主要包括:STM32F103C8T6最小系统板(3个)、正点原子LORA模块ATK-L

嵌入式阿齐Archie 1万+

xtop:multi_driven_net与incomplete_timing_cell fail reason 分析

man multi_driven_net”可以得知,这个问题是multi driven结构引起的,使用命令“get_failed_pins -reason multi_driven_net”,获取violation pin。“man incomplete_timing_cell”可以得知,这个fail reason的原因是缺少timing library cell,检查并补全后这个错误就显示了。这里选择的解决方法是修改lib文件,把inout改成input,重新lib2idb。通过这种方法解决了问题。

m0_61544122的博客 567

Qt 学习笔记 - 第五章 - Qt 时间编程 - Qt 时钟

【代码】Qt 学习笔记 - 第五章 - Qt 时间编程 - Qt 时钟。

weixin_45063639的博客 470

把 ST03 的历史数据留得更久:ABAP Workload 统计保留期设置、原理与落地避坑指南

SAP ST03性能数据保留期配置指南 ST03/ST03N是SAP系统性能分析的核心工具,但默认数据保留期通常较短(3个月左右),难以满足跨季度对比、年度规划等需求。本文详细解析了ST03数据保留期的配置方法及注意事项: 数据存储机制:性能数据存储在监控库中,通过定期重组作业清理过期数据 配置路径:7.0+系统在"Workload Collector Database→Reorganization→Control"中按Profile分别设置 关键限制:保留期最大值建议不超过99,否则可

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 219

QT学习笔记(文件编程)

cpp复制// 递归子目录} else {文本处理优先使用,简化编码和逐行操作。大文件操作使用QFile分块读写,避免内存溢出。跨平台路径:用代替获取系统分隔符。异常处理:始终检查open()返回值,记录错误日志。性能优化:遍历目录时避免重复获取元数据。

波风水门的博客 584

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

QT学习笔记4:QT中GraphicsView编程

一、QGraphicsScene 1、QGraphicsScene QGraphicsScene继承自QObject,是一个管理图元的容器,与QGraphicsView合用可以在2D屏幕上显示如线、三角形、文本、自定义图元等图元。 QGraphicsScene是不可见的,只用于管理图元。为了查看场景,需要创建一个视图组件。 一个场景分为三个层:图元层、前景层和背景层。场景的绘制总...

dengguan2720的博客 1718

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Qt 学习笔记 - 第三章 - Qt 的三驾马车之 - 串口编程 + 打包成Windows软件

创建 Qt Widgets Application 项目 seial基类选择 WidgetUI设计UI代码展示 3、逻辑功能 在工程文件中引入 获取串口信息并展示到页面上,在目前 UI 对应的 cpp 的构造中进行 其他控件的逻辑功能点击打开串口时对串口进行初始化对串口的声明和创建头文件 Cpp文件 打开按钮单击信号的槽函数 关闭按钮单击信号槽函数 发送按钮单击信号槽函数 串口有东西可读时,在接收框中进行展示定义槽函数,在头文件中 手动绑定可读信号与槽函数,在构造

weixin_45063639的博客 345

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Qt编程—学习笔记——Qt4到Qt5兼容

目前网上很多Qt例子,源程序都是基于Qt4所写的。如果安装了Qt5,用Qt5去编译,就通不过,需要在 工程第一个文件 *.pro中添加一句话        greaterThan(QT_MAJOR_VERSION, 4): QT += widgets       如果还有不通过可能就是源程序中使用的类在Qt5中进行了很大改动,可以查看编译错误指示,结合Qt文档进行修改。

u011473241的专栏 1022

Qt编程学习笔记

新建项目->其他项目->Empty qmake Project,添加新文件,项目->run->Run in terminal,发现cin>>a无法向a输入数据,检查.pro文件发现缺少参数CONFIG += console c++17,添加该参数后,右键该项目->执行qmake->清除,然后Ctrl+R运行就可以可以了。 Define Build System为CMake和QMake生成的管理文件不同: 如果新建Qt Widgets Application文

文祐的博客 2081

qt的mysql编程_浅谈关于Qt中数据库编程学习笔记

Qt数据库编程是本文要介绍的内容,主要是来学习在QT中数据库的编程和数据库的使用方法,具体内容来看本文详解。QtSql模块提供了一个平台无关且数据库无关的访问SQL数据库的接口。Qt中的每个数据库连接用一个QSqlDatabase对象来表示;Qt使用不同driver来和各种不同数据库的API进行通讯。QSqlQuery提供了直接执行任意SQL语句的特性;此外还提供了两个高层次的无需SQL命令的数据...

weixin_29200741的博客 269

QT学习笔记(QT网络编程)

Qt 网络模块为我们提供了编写 TCP / IP 客户端和服务器的类。它提供了较低级别的类,例如代表低级网络概念的 QTcpSocket,QTcpServer 和 QUdpSocket,以及诸如 QNetworkRequest,和之类的高级类来执行使用通用协议的网络操作。它还提供了诸如QNetworkConfiguration,QNetworkConfigurationManager和QNetworkSession等类,实现承载管理。

让学习成为一种习惯 824

【Qt编程】Qt学习笔记<二>

1.      QApplication类和QWidget类都包含在QtGui模块中。所以我们可以只包含这个头文件即可。 2.      在c++中,用new分配了内存空间就需要用delete来释放空间,而在Qt中,释放父对象时,会自动销毁子对象。 3.      将光标定位到函数上时,会浮现出提示,按提示按f1就可以进入该函数的帮助文档。 4.      在main.c文件中,程序只有进入

青峰碧陋室 2068

Qt5学习笔记之上手编程笔记

Qt5学习笔记之上手编程笔记 第一天 上手编程笔记之开始与基础代码分析 文章目录Qt5学习笔记之上手编程笔记前言一、初次生成窗口main.cppmainwindow.htest_opencv.pro二、第二个简单工程的描述1.加入button2.读入数据总结 前言 上手编程笔记主要记录了代码编写,生成过程中的一些代码的解释笔记,用于后续回顾记录 一、初次生成窗口 以下为初次生成窗口后,代码的一些说明 main.cpp #include "mainwindow.h" //QApplication应用程

u011826081的博客 749

Qt5 学习笔记 二:UI 编程

既然说Qt最方便的是它的UI界面编程,那我们就从UI开发开始我们的Qt编程之旅。           个人原创,转载请注明出处:             http://blog.csdn.net/embbnux/article/details/12361155         一、首先启动qt creator                          这界面一看就很爽。

MyBlog of Embbnux 1万+

【Qt编程】Qt学习笔记<三>

1.      如果程序中使用了png以外格式的图片,在发布程序时就要将Qt安装目录下plugins中的imagineformats文件复制到发布文件中。 2.      在函数声明处快速添加函数定义可单击函数名,按下alt+Enter键后,按下Enter键就可以进入到函数定义部分。 3.      关联槽和信号的两种方法:1.直接在设计器中用鼠标拖拽,适合于设计器中的部件间进行。2.在设计器

青峰碧陋室 1399
上一篇: 结构体的初始化
下一篇: 嵌入式linux软件开发下的数据参数保存
dcdcmin
博客等级 码龄16年 35粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值