完成QT上位机(八)

news2024/9/22 1:21:06

一. 正式开始设计界面

这一章节我们将完成QT上位机的设计,如果有同学对QtCreater的使用不太熟悉的,可以参考下面的链接

Qt 快速入门系列教程 · Qt 快速入门系列教程 (gitbooks.io)icon-default.png?t=N7T8https://wizardforcel.gitbooks.io/qt-beginning/content/

二. 数据库处理

 在qtsql数据库中建立两个表,一个表用来保存各个传感器的数据,一个表用来保存对电机等装置进行控制的信息。

让控件融入进背景:

修改样式表

QMainWindow#MainWindow

{

border-image:url(:/new/prefix1/picture/pic/one.png);

}

    //dbui->setStyleSheet("background-image: url(:/new/prefix1/picture/pic/one.png);");
//    // 设置背景图片
//    QString imagePath = ":/new/prefix1/picture/pic/one.png";
//    QString styleSheet = QString("background-image: url(%1);"
//                                 "background-repeat: no-repeat;"
//                                 "background-position: center;")
//                         .arg(imagePath);
 
 
//    dbui->setStyleSheet(styleSheet);
    //w.setStyleSheet("background-image: url(:/new/prefix1/picture/pic/one.png);");

三. 摄像头功能

特别讲述QT的摄像头部分

在MySQL中,您可以使用BLOB类型来存储图像数据。BLOB是二进制大对象(Binary Large Object)的缩写,它可以用来存储大量的二进制数据,比如图像文件、音频文件或视频文件等。下面是创建包含图像字段的表的具体步骤和SQL语句。

步骤

  1. 创建数据库:

    • 如果您还没有创建数据库,首先需要创建一个。
  2. 创建表:

    • 创建一个包含BLOB类型的字段来存储图像数据的表。
  3. 插入数据:

    • 插入图像数据到表中。

数据刷新

1. 使用定时器

导致UI卡顿

2. 使用QtConcurrent

QtConcurrent库提供了线程池,可以将任务异步提交给线程池执行,而不会阻塞GUI线程。

QMainWindow中使用QtConcurrent模块执行异步任务可以帮助你避免UI卡顿,同时充分利用多核处理器的优势。下面是一个具体的示例,展示了如何在QMainWindow中使用QtConcurrent::run来执行一个异步任务,并在任务完成后更新UI。

但后来发现在QtConcurrent中使用Qt的SQL模块(QtSql)进行MySQL数据库查询时遇到错误,通常是因为SQL查询或数据库操作不能在非主线程中执行。QtSql的数据库API并不是线程安全的,也就是说,所有的数据库操作应该在同一个线程中进行,通常是主线程。

3. 所以还是直接采用定时器

把查询从六次查询减少的一次,并且0.5秒进行一次定时中断就不卡顿了

三. 遇到的问题

2.

要使用表格必须添加

QT_CHARTS_USE_NAMESPACE

1. 运行后,工具栏出现两个,导致按钮按下触发两次

首先查看是否真有两个工具栏

qDebug() << "Number of toolbars:" << w.findChildren<QToolBar*>().count();

运行后,发现toolbar的数量为2,说明重复出现了一个toolbar,但是我们在.ui文件中设计的时候只添加了一个toolbar

 

最终放弃使用Designer添加工具栏,而是直接用代码中添加ToolBar并且添加动作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1972510.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从零开始的MicroPython(五)PWM

上一篇&#xff1a;串口 文章目录 定义ESP32代码 定义 要理解一个定义&#xff0c;就要引申一个已经掌握的概念&#xff0c;PWM是什么&#xff1f;我们或许可以用“周期”的概念来理解。 高电平出现的占比是占空比。 PWM&#xff08;脉冲宽度调制&#xff09;是一种调节信号…

022.(附加)chromedriver编译-绕过selenium机器人检测

有小伙伴说使用selenium没能绕过机器人检测&#xff0c;盘他。 一、selenium简介 Selenium 是一个强大的工具&#xff0c;用于Web浏览器自动化&#xff0c;更常被用于爬虫但selenium需要通过webdriver来驱动chrome&#xff0c;每次运行selenium时&#xff0c;都要先找到对应版…

VMware Workstation17 安装 Ubuntu 操作系统

今天给伙伴们分享一下VMware Workstation17 安装 Ubuntu 操作系统 &#xff0c;希望看了有所收获。 我是公众号「想吃西红柿」「云原生运维实战派」作者&#xff0c;对云原生运维感兴趣&#xff0c;也保持时刻学习&#xff0c;后续会分享工作中用到的运维技术&#xff0c;在运维…

企业邮箱有哪些便捷功能

企业邮箱有哪些便捷功能?一、消息流实现社交式互动&#xff1b;二、邮件委托轻松分担工作&#xff1b;三、音视频通话即时沟通&#xff1b;四、邮件定时发送与提醒确保重要信息不遗漏&#xff1b;五、邮件召回与延迟发送提供反悔机会&#xff1b;六、离线阅读邮件实现无缝工作…

QtQuick Text-对齐方式

属性 Text项目 的horizontalAlignment和verticalAlignment分别用来设置文本在 Text项目区域中的水平、垂直对齐方式。 默认文本在左上方。 属性值有&#xff1a; horizontalAlignment Text.AlignLeftText.AlignRightText.AlignHCenterText.Justify verticalAlignment Text.…

(纯分享01)初学AI,怎样才算是有效提示问题呢?

前言 你有没有想过&#xff0c;为什么有些人似乎能从 AI 工具中获得惊人的效果&#xff0c;而其他人却举步维艰&#xff1f;好用的永远在别人那&#xff0c;而自己的人工智能AI怎么这么像"人工智障"呢&#xff1f;有没有经常被气到呢哈哈哈哈&#xff1f; 问题的答…

Python IDLE修改JetBrains Mono字体教程

自己在使用Python IDLE过程中发现原生字体不好看&#xff0c;不美观。尤其是对于部分字符&#xff0c;l打印不美观&#xff0c;区别不明显。于是诞生了换字体的想法。 教程简单&#xff0c;快速&#xff0c;3-5分钟不到即可完成。 目录 选型 下载安装 使用 选型 考虑到代码…

网络空间资产测绘:为安全防护“画出”实时“地图”

网络空间已成为继海、陆、空、天之后的“第五疆域”&#xff0c;对其空间布局进行摸排并形成“地图”&#xff0c;是维护网络空间安全的基础性工作。近日在2024全球数字经济大会上发布的DayDayMap全球网络空间资产测绘平台&#xff0c;能为用户提供全面、精准、实时的全球网络空…

Go语言中获取tls中的KeyLogFile,用于dubug

文章目录 获取KeyLogFile示例代码&#xff1a;1. client2. client3. 效果 获取KeyLogFile tls.config自带了接口&#xff0c;所以配置的时候只需要打开就行&#xff0c;以客户端为例 keylogfile 是一个 io.Writer 开了这个就自动使用了 keyLogFile, _ : os.OpenFile(keyLogFi…

C#开发编程软件下载安装

1、Visual Studio 2022社区版下载 2、开始安装 3、安装进行中 。。。。

基于edge和bwmorph函数的两种图像边缘检测方法及应用

边缘检测是图像处理和计算机视觉中的基本问题&#xff0c;边缘检测的目的是标识数字图像中亮度变化明显的点。本文给出edge和bwmorph两个函数进行边缘检测的基本用法&#xff0c;并给出一个应用示例。 一、edge和bwmorph函数简介 edge和bwmorph是MATLAB中用于图像处理边缘检测…

Datawhale AI 夏令营(2024第三期)AI+逻辑推理方向 模型微调学习笔记

如何基于开源大模型进行优化 1. Prompt工程 大模型可能知道问题相关&#xff0c;但是我们问的不清楚。所以需要根据我们的提问&#xff0c;构建出一个比较结构化的、大模型易于理解和分析的提问内容。 在下方的第二个资料里&#xff0c;我才知道有这么多Prompt的构建思路&…

认真学习JVM中类加载过程

本文我们总结JVM中类加载器子系统关于类加载过程&#xff0c;这里默认是Oracle的Hotspot。 【1】类加载器子系统作用 类加载器子系统负责从文件系统或者网络中加载Class文件&#xff0c;class文件在文件开头有特定的文件标识。 ClassLoader只负责class文件的加载&#xff0…

软件测试——测试分类(超超超齐全版)

为什么要对软件测试进行分类 软件测试是软件⽣命周期中的⼀个重要环节&#xff0c;具有较⾼的复杂性&#xff0c;对于软件测试&#xff0c;可以从不同的⻆度加以分类&#xff0c;使开发者在软件开发过程中的不同层次、不同阶段对测试⼯作进⾏更好的执⾏和管理测试的分类⽅法。…

见证中国数据库的崛起:从追赶到引领的壮丽征程《一》

见证中国数据库的崛起&#xff1a;从追赶到引领的壮丽征程《一》 一、追溯历史&#xff1a;中国数据库发展的艰难起步萌芽阶段&#xff08;20世纪70年代末-80年代初&#xff09;起步阶段&#xff08;20世纪80年代中期-90年代初&#xff09;发展阶段&#xff08;20世纪90年代中期…

实验2-1-7 输出倒三角图案

本题要求编写程序&#xff0c;输出指定的由“*”组成的倒三角图案。 输出格式: * * * ** * ** **程序&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() {for (int i 0; i < 4; i) {for (int k 0; k < i; k) {printf(" &qu…

YOLO:目标检测模型的训练和推理(简单Demo)

作者&#xff1a;CSDN _养乐多_ 本文将介绍如何训练和推理YOLO模型。使用coco8数据集以一个简单的demo进行示例。 文章目录 一、准备1.1 模型类型1.2 环境配置 二、模型训练和推理三、讨论 一、准备 1.1 模型类型 YOLO8模型性能数据&#xff1a; ModelSize (pixels)mAPval…

ICC2:分段长tree简易版教程

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 分段长tree让一部分sink balance的更好,有助于时序收敛,但ICC2的分段长tree需要单独写一个sdc去做sub tree再换回原始sdc去长tree,流程繁琐,我整理了一个简单的流程,不需要额外的sdc,唯一的缺…

Linux系统如何查看版本信息,内核、发行版、cpu、所有版本

查看当前操作系统内核信息&#xff1a;uname -a查看当前操作系统版本信息&#xff1a;cat /proc/version查看当前操作系统发行版信息&#xff1a; cat /etc/redhat-release 或 cat /etc/issue查看cpu相关信息&#xff0c;包括型号、主频、内核信息等&#xff1a;cat /proc/cpui…

【ARM】SMMU:boot_code.s中转换页表的配置方式

#工作记录# 拖了非常久的页表转换整理&#xff0c;补坑&#xff01;废话不多说开整。 MMU相关的知识点可以参考我之前的博客&#xff0c;这篇博客主要介绍如何在boot_code.s中配置页表。 目录 1.boot_code.s简介 2. MMU配置相关 2.1系统寄存器 2.2 ttb0_base的配置 1.boo…