vs20222使用qt做材料库

news2024/11/16 15:43:07

在这里插入图片描述
Material.h

#pragma once
#include "QtWindow.h"
#include "ui_Widget.h"
#include <QWidget>
#include <QObject>
#include <QDialog>

//防止中文乱码
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")// 该指令仅支持VS环境
#endif

class Material :
    public QtWindow
{
   
public:
    Material(QtWindow* parent,
        QtWindowId id,
        const QtPoint& pos = qtDefaultPos,
        const QtSize& size = qtDefaultSize);
public:
    void InitNewList();
    void InitNewControl();
    QtBox* __mainbox;
    QtBox* __Topbox;
    QtBox* __Belowbox;

    void InitParaTable();
    void InitTableWidget();
    void InitCheck();
    void ShowData();
    void ShowDataNew();
    void ClearLineEdit();
    int selectRow;//tablewidget点击所在行
    QWidget* w;
    Ui::Widget ui;

    void InitMap();
    QMap<int, QString>mp;
    QStringList GetName();
    std::list<QtString> GetMaterialName();
    QByteArray ReturnPara(QString strName);

private slots:
    void on_pushButton_add_clicked();
    void on_pushButton_dele_clicked();
    void on_pushButton_modify_clicked();
    void on_pushButton_send_clicked();
    void feedback(int row, int column);


};

Material.cpp

#include "Material.h"

#include "QtBox.h"
#include "QtTool.h"
#include "Res.h"
#include "QtEdit.h"
#include "QtBlock.h"
#include "QtGroup.h"
#include "QtBound.h"
#include "QtCombo.h"

#include <SvWindow.h>

#include "qdebug.h"
#include "..\include\QtSql\QSqlDatabase"
#include"..\include\QtSql\QSqlError"
#include"..\include\QtSql\QSqlQuery"
#include"..\include\QtSql\QSqlRecord"

#include <SysParam_Basic.h>

#define SQL_QUERY_DATA "Select * from machpara"//查询sql语句
#define	CLEAR_BIT(x, bit)	(x &= ~(1 << bit))	/* 清零第bit位 */
#define	SET_BIT(x, bit)	(x |= (1 << bit))		/* 置位第bit位 */

#include <iostream>
#include <fstream>

#include<QFile>
#include<QJsonArray>
#include<QJsonObject>
#include<QJsonDocument>

#include<QMap>

Material::Material(QtWindow* parent, QtWindowId id, const QtPoint& pos, const QtSize& size)
    : QtWindow(parent, id, pos, size)
{
   
   /* setFillColor(0x9e9e9e);
    setLineInvalid();*/
    /* InitNewList();
     InitNewControl();
     __mainbox= qtMakeVBox(QtMargin{ 2,12,12,12 }, __Topbox, 12, __Belowbox, 2);
     setLayout(__mainbox);*/


    w = new QWidget();
    ui.setupUi(w);
    w->show();

    InitMap();
    InitTableWidget();
    InitCheck();
    ShowDataNew();
    selectRow = -1;
    connect(ui.pushButton_add, &QPushButton::clicked, this, &Material::on_pushButton_add_clicked);
    connect(ui.pushButton_dele, &QPushButton::clicked, this, &Material::on_pushButton_dele_clicked);
    connect(ui.pushButto_modify, &QPushButton::clicked, this, &Material::on_pushButton_modify_clicked);
    connect(ui.pushButton_send, &QPushButton::clicked, this, &Material::on_pushButton_send_clicked);
    // 返回鼠标单击所在的row和col
    connect(ui.tableWidget_MaterialLibrary, &QTableWidget::cellClicked, this, &Material::feedback);
    //2023.7.31 关联Groupbox和控件状态
    connect(ui.groupBox, &QGroupBox::clicked, [&](bool _flag) {
   
        ui.checkBox1->setChecked(_flag);
        ui.checkBox2->setChecked(_flag);
        ui.checkBox3->setChecked(_flag);
        });
    connect(ui.groupBox_2, &QGroupBox::clicked, [&](bool _flag) {
   
        ui.checkBox4->setChecked(_flag);
        ui.checkBox5->setChecked(_flag);
        ui.checkBox6->setChecked(_flag);
        ui.checkBox7->setChecked(_flag);
        ui.checkBox8->setChecked(_flag);
        ui.checkBox9->setChecked(_flag);
        ui.checkBox10->setChecked(_flag);
        ui.checkBox11->setChecked(_flag);
        ui.checkBox12->setChecked(_flag);
        ui.checkBox13->setChecked(_flag);
        ui.checkBox_2->setChecked(_flag);
        });
    connect(ui.groupBox_3, &QGroupBox::clicked, [&](bool _flag) {
   
        ui.checkBox14->setChecked(_flag);
        ui.checkBox15->setChecked(_flag);
        ui.checkBox16->setChecked(_flag);
        ui.checkBox17->setChecked(_flag);
        });

}

void Material::InitNewList()
{
   
    QtLabel* __no = new QtButton(this, qtAnyId, L"序号", qtDefaultPos, QtSize(41, 64));
    QtLabel* __name = new QtButton(this, qtAnyId, L"材料名称", qtDefaultPos, QtSize(qtDefaultCoord, 64));
    QtLabel* __width = new QtButton(this, qtAnyId, L"向心加速度", qtDefaultPos, QtSize(75, 64));
    QtLabel* __length = new QtButton(this, qtAnyId, L"旋转加速度", qtDefaultPos, QtSize(75, 64));
    QtLabel* __userate = new QtButton(this, qtAnyId, L"最大旋转速度", qtDefaultPos, QtSize(78, 64));
    QtLabel* __sampnum = new QtButton(this, qtAnyId, L"抬刀振动频率", qtDefaultPos, QtSize(78, 64));
    QtLabel* __perimeter = new QtButton(this, qtAnyId, L"裁刀最小振动频率", qtDefaultPos, QtSize(90, 64));
    QtLabel* __notchnum = new QtButton(this, qtAnyId, L"裁刀最大振动频率", qtDefaultPos, QtSize(90, 64));
    QtLabel* __punchnum = new QtButton(this, qtAnyId, L"运动速度", qtDefaultPos, QtSize(55, 64));
    QtLabel* __state = new QtButton(this, qtAnyId, L"运动加速度", qtDefaultPos, QtSize(75, 64));
    QtLabel* __endtime = new QtButton(this, qtAnyId, L"压盘压力", qtDefaultPos, QtSize(55, 64));
    QtLabel* __usetime = new QtButton(this, qtAnyId, L"压盘抬落压力", qtDefaultPos, QtSize(78, 64));
    QtLabel* __stoptimes = new QtButton(this, qtAnyId, L"真空压", qtDefaultPos, QtSize(50, 64));
    QtLabel* __stoptime = new QtButton(this, qtAnyId, L"保持真空压", qtDefaultPos, QtSize(75, 64));

    QtLabel* __tdjd = new QtButton(this, qtAnyId, L"抬刀角度", qtDefaultPos, QtSize(55, 64));
    QtLabel* __lfxt = new QtButton(this, qtAnyId, L"冷风系统", qtDefaultPos, QtSize(55, 64));
    QtLabel* __firstpress = new QtButton(this, qtAnyId, L"第一面磨刀压力", qtDefaultPos, QtSize(90, 64));
    QtLabel* __firsttime = new QtButton(this, qtAnyId, L"第一面磨刀时间", qtDefaultPos, QtSize(90, 64));
    QtLabel* __secondpree = new QtButton(this, qtAnyId, L"第二面磨刀压力", qtDefaultPos, QtSize(90, 64));
    QtLabel* __secondtime = new QtButton(this, qtAnyId, L"第二面磨刀时间", qtDefaultPos, QtSize(90, 64));
    QtLabel* __sdchange = new QtButton(this, qtAnyId, L"砂带选择", qtDefaultPos, QtSize(90, 64));

    QtBox* __boxNo = qtMakeDefaultVBox(__no);
    QtBox* __boxName = qtMakeDefaultVBox(__name);
    QtBox* __boxWidth = qtMakeDefaultVBox(__width);
    QtBox* __boxLength = qtMakeDefaultVBox(__length);
    QtBox* __boxUseRate = qtMakeDefaultVBox(__userate);
    QtBox* __boxSampNum = qtMakeDefaultVBox(__sampnum);
    QtBox* __boxPerimeter = qtMakeDefaultVBox(__perimeter);
    QtBox* __boxNotchNum = qtMakeDefaultVBox(__notchnum);
    QtBox* __boxPunchNum = qtMakeDefaultVBox(__punchnum);
    QtBox* __boxState = qtMakeDefaultVBox(__state);
    QtBox* __boxEndTime = qtMakeDefaultVBox(__endtime);
    QtBox* __boxUseTime = qtMakeDefaultVBox(__usetime);
    QtBox* __boxStopTimes = qtMakeDefaultVBox(__stoptimes);
    QtBox* __boxStopTime = qtMakeDefaultVBox(__stoptime);

    QtBox* __box1 = qtMakeDefaultVBox(__tdjd);
    QtBox* __box2 = qtMakeDefaultVBox(__lfxt);
    QtBox* __box3 = qtMakeDefaultVBox(__firstpress);
    QtBox* __box4 = qtMakeDefaultVBox(__firsttime);
    QtBox* __box5 = qtMakeDefaultVBox(__secondpree);
    QtBox* __box6 = qtMakeDefaultVBox(__secondtime);
    QtBox* __box7 = qtMakeDefaultVBox(__sdchange);

    std::vector< QtLabel*> __labellist;

    __labellist.push_back(__no);
    __labellist.push_back(__name);
    __labellist.push_back(__width);
    __labellist.push_back(__length);
    __labellist.push_back(__userate);
    __la

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

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

相关文章

【vue】vue 里面使用 v-html 插入的文本带有换行符‘\n‘不换行

最近开发vue2 项目 &#xff0c;接口返回的是类似于这样的数据&#xff1a;我是第一行的哦\n我是第二行的哦 我是直接这样渲染的&#xff0c; //html <p v-htmltext></p>//渲染值 this.text "我是第一行的哦\n我是第二行的哦"但结果却是不如意&#x…

数据之海 — 探索大数据的无尽可能

数据之海 — 探索大数据的无尽可能 &#x1f498; &#x1f498;1. 什么是大数据&#xff1f;&#x1f498; &#x1f498;2. 大数据的应用领域&#x1f496; &#x1f496;2.1 商业决策&#x1f496; &#x1f496;2.2 医疗保健&#x1f496; &#x1f496;2.3 城市规划&#…

【机器学习】处理样本不平衡的问题

文章目录 样本不均衡的概念及影响样本不均衡的解决方法样本层面欠采样 &#xff08;undersampling&#xff09;过采样数据增强 损失函数层面模型层面采样集成学习 决策及评估指标 样本不均衡的概念及影响 机器学习中&#xff0c;样本不均衡问题经常遇到&#xff0c;比如在金融…

安全文件传输:如何避免数据泄露和黑客攻击

网络安全问题日益严重&#xff0c;导致许多数据被泄露和黑客袭击的事件频发。为了保证文件传输的安全&#xff0c;需要实施一系列安全文件传输策略来防止数据被泄露和黑客袭击。 第一、选择适合的加密方法是非常关键的 加密是一种将明文转换成密文的过程&#xff0c;这样只有授…

再探python装饰器

参考视频教学&#xff1a; 可能是b站上最好的Python装饰器教程_哔哩哔哩_bilibili 【python】如何在class内部定义一个装饰器&#xff1f;这里的坑你要么不知道&#xff0c;要么不会填&#xff01;_哔哩哔哩_bilibili 推荐&#xff01;先学习第一个视频&#xff0c;再学习第…

Selenium 根据元素文本内容定位

使用xpath定位元素时&#xff0c;有时候担心元素位置会变&#xff0c;可以考虑使用文本内容来定位的方式。 例如图中的【评价】按钮&#xff0c;只有按钮文本没变&#xff0c;就可以定位到该元素。 xpath内容样例&#xff1a; # 文本内容完全匹配 //button[text()"评价&…

赋能教育数字化转型,经管大数据课程教学训练营线下培训圆满收官!

全面推进教学教改、加快学科专业交叉融合&#xff0c;2023年7月30日&#xff0c;由邮电出版有限责任公司联合上海和今信息科技有限公司&#xff08;下简称“和鲸科技”&#xff09;、山东省中国石油大学&#xff08;华东&#xff09;大数据人才培训示范基地主办的“数字化转型背…

【三等奖方案】Web攻击检测与分类识别赛题「Cyan」团队解题思路

2022 CCF BDCI 数字安全公开赛「Web攻击检测与分类识别」赛题Cyan战队获奖方案 地址&#xff1a;http://go.datafountain.cn/4Zj 团队简介 团队成员来自中国科学院大学&#xff0c;对数据挖掘与网络安全有浓厚兴趣&#xff0c;曾多次获得大数据安全分析等比赛的Top名次。希望…

网络:SecureCRT介绍

1. 使用Tab键补全时出现^I&#xff0c;如下操作

MySQL数据库服务器的简化(此操作针对开发人员,不推荐运维人员)

目录 引言 一&#xff0c;5.7之前版本简化 二&#xff0c;5.7之后版本简化 引言 简化数据库只是为了让数据库文件更小更简单。对于开发人员来说是一个不错的选择&#xff0c;h是将数据库只用于简单的数据操作&#xff0c;但是对于运维人员来说就是灾难。 建议每次删除前可以备…

vscode 通过mongoose 连接mongodb atlas

了解mongodb 的项目结构 1.代表集群名称 > 2.代表数据库名称>3.代表每个 collection名称 三者范围为从大到小的关系 &#xff08;一对多&#xff09;。每个集群有不同的连接地址、用户信息&#xff08;Database Access&#xff09;、ip配置信息&#xff08;Network Acce…

安全狗V3.512048版本绕过

安全狗安装 安全狗详细安装、遇见无此服务器解决、在windows中命令提示符中进入查看指定文件夹手动启动Apache_安全狗只支持 glibc_2.14 但是服务器是2.17_黑色地带(崛起)的博客-CSDN博客 安全狗 safedogwzApacheV3.5.exe 右键电脑右下角安全狗图标-->选择插件-->安装…

Vue3基础(1)

1.简单的vue实例 1.data函数介绍 也可以修改data里的数据 2.自定义函数 调用函数 3.Vue模板语法 &#xff08;1).V-html (2)三目运算符的支持 &#xff08;3&#xff09;对函数的支持 &#xff08;4&#xff09;v-bind 值动态修改 4.指令 1.v-if和v-else的使用

数据截断、频谱泄漏与窗函数的选择

目录 数据截断、频谱泄漏与窗函数的选择 什么是频谱泄漏&#xff1f; 解决频谱泄漏问题的方法 主瓣和旁瓣 窗函数介绍 窗函数解决频谱泄漏问题的原理 窗函数的种类、特点和如何使用 1、矩形窗 2、三角窗 3、汉宁窗 4、海明窗 5、布莱克曼窗 6、巴特窗&#xff1a;…

docker 保存和载入镜像

查看本机docker镜像 docker images保存镜像 docker save -o /home/space/work1/docker_qnx7.1.tar.gz a01ee6d74c36复制镜像到其他服务器 scp /home/space/work1/docker_qnx7.1.tar.gz XXXIP:/home/dell/work1/登录新 服务器操作 docker load -i docker_qnx7.1.tar.gz载入后…

滇医通微信小程序分析笔记

注意 本文章仅供学习交流使用&#xff0c;如果你是铁粉你就会知道博主之前发布过一篇相关的文章&#xff0c;但是由于代码涉及到法律相关所以就隐藏了&#xff0c;两年的时间过去了&#xff0c;因为女朋友已经早早安排上了&#xff0c;所以就搁置了&#xff0c;本次不做代码分…

【Linux】Linux服务器连接百度网盘:实现上传下载

【Linux】Linux服务器连接百度网盘&#xff1a;实现上传下载 文章目录 【Linux】Linux服务器连接百度网盘&#xff1a;实现上传下载1. 前言2. 具体过程2.1 pip 安装所需包2.2 认证&#xff08;第一次连接需要认证&#xff09;2.3 下载所需文件或者目录2.4 其他指令使用2.5 注意…

Vue3和typeScript路由传参

1 params传的参数&#xff0c;页面刷新就消失,而query传的参数&#xff0c;页面刷新还会存在&#xff0c;所以通常用query。 query传参 跳转页面&#xff1a;拿到router对象,调用push方法做跳转. import { useRoute,useRouter} from "vue-router"; export default…

SAP自建表日志

文章目录 1.在表里加上日志记录字段1.1 加入日志结构1.2 在代码中调用记录日志通用函数1.3 在SM30里面记录日志1.4 缺点1.5 优点 2.表技术设置-日志数据更改2.1 RZ10或者RZ11修改系统参数2.2 设置表的属性2.3 查询日志2.4 缺点2.5 优点 3 SCDO文档对象3.1 勾选相应字段-数据元素…

Redis的订阅者和发布者模式、主从双备和密码认证

四、Redis的订阅者和发布者模式、主从双备和密码认证 1、Redis的订阅者和发布者模式 两个数据库&#xff0c;一个是10&#xff0c;一个是15。订阅频道&#xff1a; 向频道推数据&#xff1a; 接收到数据&#xff1a; 2、redis的高可用&#xff08;HA&#xff09;主从双备 模拟…