【医疗仪器工业仪器上位机】【图文】QT5+mysql数据库+widget显示 您所在的位置:网站首页 上位机界面图 【医疗仪器工业仪器上位机】【图文】QT5+mysql数据库+widget显示

【医疗仪器工业仪器上位机】【图文】QT5+mysql数据库+widget显示

2023-07-29 21:42| 来源: 网络整理| 查看: 265

用qt5写的,可进行自定义操作步骤,也可以拿预设的来进行操作。所有操作的数据保存在数据库中,防止自己操作的编辑步骤丢失。根据实际步骤需要,操作人员根据现有条件,标准方法,每操作一步,进行打钩和下一项,这样可以标准化流程,规范流程。能记录当前操作保存的记录步骤,断电、误操作都能恢复之前的步骤数据。

先看功能预览视频,由于数据库还没完善,所以先随便读几个,整个步骤框架和功能在视频中都能体现。

医学图像检测仪功能

 

2022.4.22

首先吐槽一波,没天理啊,某研二的学长花了2个月画了个界面的头,导师气死了,项目要黄了,着急的立马来找我,我本着划水的态度,先复习会教资。这个功能也不难啊!!!花了一晚上肝了出来了一个demo

界面功能说明:

按下复选框,右边的text文本跟着复选框的动,左边列表高亮某行,下方表格添加一行新的。

按下右上方按钮,把多页stackwidget隐藏,按下其余的2个按钮分别是多页取上一页/下一页(如果没有,那么就创建新的)。

这个demo就是这样,符合此项目的需求。

此项目为医疗项目,上方显示LOGO,之后可以进行操作,以一条操作为例:从数据库中读取医疗操作步骤,显示在左边列表中,完成第N步骤后点击下一页,则下一步高亮显示,同时页面显示出第N+1步骤的界面,表格是根据医护人员点击操作按钮进行选择是否操作勾选,有自定义选项。

待更新中。。。

#include "widget.h" #include "ui_widget.h" #include #include #include #include Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); } Widget::~Widget() { delete ui; } void Widget::on_box3_currentTextChanged(const QString &arg1) { //添加列表 QStringList strList; strListtext->setText(arg1);//text框内容跟着box3的选择内容变 //添加表格 int row = ui->renwubiao->rowCount();//动态添加行 ui->renwubiao->insertRow(row); ui->renwubiao->setColumnCount(9); ui->renwubiao->resizeColumnsToContents();//自动调整所有列的宽度,以适应其内容。 QStringList strList2; strList2 renwubiao->setItem(row,0,p_check); // } qDebug()setText("text"); ui->multipleWidget->addWidget(my_widget); } void Widget::on_next_button_clicked() { current_page--; ui->multipleWidget->setCurrentIndex(current_page); } void Widget::on_exit_button_clicked() { //隐藏多页的wid static int i=0; if(i==0){ui->multipleWidget->hide();i=1;} else {ui->multipleWidget->show();i=0;} }

2022年5月4日11:53:29

 没什么好说的,具体的技术就是上述的工程demo做的。

遇到一个bug,就是显示中文的时候会闪退,找了很久,以为是野指针/不允许使用中文,各种找,结果发现是字库的问题,“设备”的备这个字,我在搞单片机的时候也是没法使用,要装一个插件,这个bug找了好久。

2022年5月5日19:05:14

加入了数据库功能,加入了创建和编辑任务功能

 

双击表格中任意一行任意位置,跳出对应的步骤功能,在步骤中,左边显示步骤总数,高亮显示当前步数,可以点击任意一行进行跳转,上方按钮(偷懒没改位置),可进行单步操作,同时红色区域会显示当前步骤的说明。

其中的技术点,直接看代码段的注释

QMessageBox::information(this, QString("提示"),QString("已经完成所有操作"));//弹出消息框 my_Label[i] -> setText("第"+QString("%1").arg(i+1)+"步");//当前步骤数 int变量转字符串qstring void Widget::on_buzhou_view_clicked(const QModelIndex &index)//点击步骤表里的list { current_page = index.row(); ui->multipleWidget->setCurrentIndex(current_page);//设置复选框当前显示的页码 } ui->renwubiao->resizeColumnsToContents();//自动调整所有列的宽度,以适应其内容。 //双击了某个任务后,一步步进行操作 void Widget::on_renwubiao_itemDoubleClicked(QTableWidgetItem *item) muliple_page_number = tmp.size();//获得长度大小 my_Label[i]->adjustSize();//label自适应text大小 ui->buzhou_view->setCurrentIndex(stringListModel->index(current_page));//高亮 int number=TMP_Vector.count(); while(number--)TMP_Vector.removeFirst();//清空缓存的列表元素 int rowNum= ui->gongnengbiao->rowCount(); for(int i = 0 ; i < rowNum ; i++)//清空列表 { ui->gongnengbiao->removeRow(0); } ZHENGJI_STEP.append(ui->textEdit->toPlainText());//获取文本写入标题 //点击了表格里的勾勾 void ChuangJianZhengJiJianCe::on_gongnengbiao_itemClicked(QTableWidgetItem *item) { QString tmpName; tmpName = ui->gongnengbiao->item(item->row(),1)->text(); qDebug()checkState()==Qt::Unchecked){ if(TMP_Vector.contains(tmpName)){//已经有了就删除 TMP_Vector.removeOne(tmpName); } else{ } } else {//如果勾勾上了 qDebug()


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有