From 160d9a13cf7ace6d126904b987faf61b095a6d47 Mon Sep 17 00:00:00 2001 From: xueyan hu <576627988@qq.com> Date: Fri, 24 Dec 2021 13:31:06 +0800 Subject: [PATCH] bug fixes --- src/ScanFormWidget.cpp | 383 +++++++++++++++++----------------- src/translations/zh_CN.ts | 80 +++---- src/translations/zh_CN.ts.bak | 80 +++---- 3 files changed, 283 insertions(+), 260 deletions(-) diff --git a/src/ScanFormWidget.cpp b/src/ScanFormWidget.cpp index 0313982..436619b 100644 --- a/src/ScanFormWidget.cpp +++ b/src/ScanFormWidget.cpp @@ -22,22 +22,22 @@ #include #endif -ScanFormWidget::ScanFormWidget(QWidget *parent) : TabFormWidget(parent) { - const char* style="QWidget#PatientInformationForm{min-width:300px;max-width:300px; margin-right:10}" - "QWidget#patientinformation_panel{ border-right:1px solid #0078d8}" - "QWidget#patientinformation_panel QLabel{font-size:20px; }" - "QWidget#param_widget{min-width:300px;max-width:300px;border-left:1px solid #0078d8}" - "QWidget#broadcast_widget{border:2px solid #515151; border-radius: 20px; background-color:black}" - "QWidget#broadcast_widget QLabel{background-color:black}" - "QLabel#lbl_protocol{font-size:32px; margin:0; color:silver}" -// "QLabel#viewer{border:1px solid yellow}" - "QLabel#lbl_title,QLabel#lbl_ptitle{font-size:20px;margin:0; border-bottom:1px solid silver}" - "QLabel#lbl_end{font-size:20px;margin:0; border-top:1px solid #0078d8}" - "QLabel#lbl_e{font-size:20px;}" - ""; - this->setStyleSheet(this->styleSheet().append(style)); - QHBoxLayout* layout =new QHBoxLayout(); - ui->commandWidget->setLayout(layout); +ScanFormWidget::ScanFormWidget(QWidget* parent) : TabFormWidget(parent) { + const char* style = "QWidget#PatientInformationForm{min-width:300px;max-width:300px; margin-right:10}" + "QWidget#patientinformation_panel{ border-right:1px solid #0078d8}" + "QWidget#patientinformation_panel QLabel{font-size:20px; }" + "QWidget#param_widget{min-width:300px;max-width:300px;border-left:1px solid #0078d8}" + "QWidget#broadcast_widget{border:2px solid #515151; border-radius: 20px; background-color:black}" + "QWidget#broadcast_widget QLabel{background-color:black}" + "QLabel#lbl_protocol{font-size:32px; margin:0; color:silver}" + // "QLabel#viewer{border:1px solid yellow}" + "QLabel#lbl_title,QLabel#lbl_ptitle{font-size:20px;margin:0; border-bottom:1px solid silver}" + "QLabel#lbl_end{font-size:20px;margin:0; border-top:1px solid #0078d8}" + "QLabel#lbl_e{font-size:20px;}" + ""; + this->setStyleSheet(this->styleSheet().append(style)); + QHBoxLayout* layout = new QHBoxLayout(); + ui->commandWidget->setLayout(layout); QLabel* lbl_Protocol = new QLabel(this); lbl_Protocol->setText(tr("Protocol")); @@ -50,6 +50,9 @@ ScanFormWidget::ScanFormWidget(QWidget *parent) : TabFormWidget(parent) { layout->addWidget(spacerLine); ADD_TOOL_BTN(Left, ":/icons/left.png"); ADD_TOOL_BTN(Right, ":/icons/right.png"); + btnLeft->setText(tr("LEFT")); + btnRight->setText(tr("RIGHT")); + QButtonGroup* group = new QButtonGroup(this); btnLeft->setCheckable(true); btnLeft->setChecked(true); @@ -64,186 +67,186 @@ ScanFormWidget::ScanFormWidget(QWidget *parent) : TabFormWidget(parent) { ADD_TOOL_BTN(Refresh, ":/icons/scan_e.png"); ADD_TOOL_BTN(Preview, ":/icons/rec.png"); - ADD_TOOL_BTN(Stop,":/icons/stop.png"); - ADD_TOOL_BTN(Scan,":/icons/scan.png"); + ADD_TOOL_BTN(Stop, ":/icons/stop.png"); + ADD_TOOL_BTN(Scan, ":/icons/scan.png"); - btnRefresh->setText(tr("Refresh")); - btnPreview->setText(tr("Preview")); - btnStop->setText(tr("Stop")); - btnScan->setText(tr("Scan")); + btnRefresh->setText(tr("Refresh")); + btnPreview->setText(tr("Preview")); + btnStop->setText(tr("Stop")); + btnScan->setText(tr("Scan")); - QHBoxLayout* contentLayout =new QHBoxLayout(); - this->ui->contentWidget->setLayout(contentLayout); - PatientInformationForm* patient_information= new PatientInformationForm(this); - contentLayout->addWidget(patient_information); - QWidget* param_widget= new QWidget(this); - QWidget* broadcast_widget = new QWidget(this); - broadcast_widget->setObjectName("broadcast_widget"); - QLabel * viewer = new QLabel(broadcast_widget); - viewer->setObjectName("viewer"); - viewer->setFixedSize(800,800); - viewer->setText(""); - QHBoxLayout* viewerLayout =new QHBoxLayout(viewer); - broadcast_widget->setLayout(viewerLayout); - viewerLayout->addWidget(viewer); - contentLayout->addWidget(broadcast_widget); - param_widget->setObjectName("param_widget"); - QVBoxLayout* paramLayout =new QVBoxLayout(param_widget); - QLabel* lblPreview = new QLabel(this); - lblPreview->setText(tr("Preview Parameters")); - lblPreview->setObjectName("lbl_title"); - paramLayout->addWidget(lblPreview); - QLabel* lbl_e = new QLabel(this); - lbl_e->setWordWrap(true); - lbl_e->setObjectName("lbl_e"); - lbl_e->setText(tr("some settings\n\nparameters\n")); - paramLayout->addWidget(lbl_e); - QLabel* lbl_end = new QLabel(this); - lbl_end->setObjectName("lbl_end"); - paramLayout->addWidget(lbl_end); - QLabel* lblParams = new QLabel(this); - lblParams->setText(tr("Scan Parameters")); - lblParams->setObjectName("lbl_title"); - paramLayout->addWidget(lblParams); - QLabel* lbl_e2 = new QLabel(this); - lbl_e2->setWordWrap(true); - lbl_e2->setObjectName("lbl_e"); - lbl_e2->setText(tr("some settings\n\nparameters\n")); - paramLayout->addWidget(lbl_e2); - QLabel* lbl_end2 = new QLabel(this); - lbl_end2->setObjectName("lbl_end"); - paramLayout->addWidget(lbl_end2); - paramLayout->addSpacerItem(new QSpacerItem(20,20,QSizePolicy::Minimum,QSizePolicy::Expanding)); - contentLayout->addWidget(param_widget); - pat_inf = patient_information; + QHBoxLayout* contentLayout = new QHBoxLayout(); + this->ui->contentWidget->setLayout(contentLayout); + PatientInformationForm* patient_information = new PatientInformationForm(this); + contentLayout->addWidget(patient_information); + QWidget* param_widget = new QWidget(this); + QWidget* broadcast_widget = new QWidget(this); + broadcast_widget->setObjectName("broadcast_widget"); + QLabel* viewer = new QLabel(broadcast_widget); + viewer->setObjectName("viewer"); + viewer->setFixedSize(800, 800); + viewer->setText(""); + QHBoxLayout* viewerLayout = new QHBoxLayout(viewer); + broadcast_widget->setLayout(viewerLayout); + viewerLayout->addWidget(viewer); + contentLayout->addWidget(broadcast_widget); + param_widget->setObjectName("param_widget"); + QVBoxLayout* paramLayout = new QVBoxLayout(param_widget); + QLabel* lblPreview = new QLabel(this); + lblPreview->setText(tr("Preview Parameters")); + lblPreview->setObjectName("lbl_title"); + paramLayout->addWidget(lblPreview); + QLabel* lbl_e = new QLabel(this); + lbl_e->setWordWrap(true); + lbl_e->setObjectName("lbl_e"); + lbl_e->setText(tr("some settings\n\nparameters\n")); + paramLayout->addWidget(lbl_e); + QLabel* lbl_end = new QLabel(this); + lbl_end->setObjectName("lbl_end"); + paramLayout->addWidget(lbl_end); + QLabel* lblParams = new QLabel(this); + lblParams->setText(tr("Scan Parameters")); + lblParams->setObjectName("lbl_title"); + paramLayout->addWidget(lblParams); + QLabel* lbl_e2 = new QLabel(this); + lbl_e2->setWordWrap(true); + lbl_e2->setObjectName("lbl_e"); + lbl_e2->setText(tr("some settings\n\nparameters\n")); + paramLayout->addWidget(lbl_e2); + QLabel* lbl_end2 = new QLabel(this); + lbl_end2->setObjectName("lbl_end"); + paramLayout->addWidget(lbl_end2); + paramLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding)); + contentLayout->addWidget(param_widget); + pat_inf = patient_information; - btnScan->setEnabled(false); - btnRefresh->setEnabled(false); - btnPreview->setEnabled(false); - btnStop->setEnabled(false); + btnScan->setEnabled(false); + btnRefresh->setEnabled(false); + btnPreview->setEnabled(false); + btnStop->setEnabled(false); - //Events--------------------------------------------------------------- - connect(EventCenter::Default(),&EventCenter::PatientSelected,[=](QObject* sender,QObject* data){ - if(unset) - { - btnScan->setEnabled(true); - btnRefresh->setEnabled(true); - btnPreview->setEnabled(true); - btnStop->setEnabled(true); - unset = false; - } - patient_information->setPatientInformation((PatientInformation*)data); - }); - connect(EventCenter::Default(),&EventCenter::ResponseStop,[=](QObject* sender,QObject* data){ - setPreviewing(false); - }); - connect(EventCenter::Default(),&EventCenter::ResponsePreview,[=](QObject* sender,QObject* data){ - setPreviewing(true); - static const size_t Row = 140; - static const size_t Col = 140; - static const float pixelSpacing = 1.5f; - static const float halfROIWidth = 100.0f; - uchar c_data[Row][Col]; - uchar* data_ptr = c_data[0]; - for(int i=0;isetFixedSize(800,800); - QPixmap pic = QPixmap::fromImage(img).scaledToHeight(800,Qt::SmoothTransformation); - QPainter painter(&pic); - QPen pen; - pen.setStyle(Qt::DashLine); - pen.setWidth(3); - QFont font("Futura"); - font.setPixelSize(26); - font.setBold(true); - painter.setFont(font); - pen.setColor(QColor(255,255,0)); - painter.setPen(pen); - painter.drawText(400-13*5,400+13,"Loading..."); - viewer->setPixmap(pic); - }); + //Events--------------------------------------------------------------- + connect(EventCenter::Default(), &EventCenter::PatientSelected, [=](QObject* sender, QObject* data) { + if (unset) + { + btnScan->setEnabled(true); + btnRefresh->setEnabled(true); + btnPreview->setEnabled(true); + btnStop->setEnabled(true); + unset = false; + } + patient_information->setPatientInformation((PatientInformation*)data); + }); + connect(EventCenter::Default(), &EventCenter::ResponseStop, [=](QObject* sender, QObject* data) { + setPreviewing(false); + }); + connect(EventCenter::Default(), &EventCenter::ResponsePreview, [=](QObject* sender, QObject* data) { + setPreviewing(true); + static const size_t Row = 140; + static const size_t Col = 140; + static const float pixelSpacing = 1.5f; + static const float halfROIWidth = 100.0f; + uchar c_data[Row][Col]; + uchar* data_ptr = c_data[0]; + for (int i = 0; i < Row; i++) { + data_ptr = c_data[i]; + memset(data_ptr, 0, Col); + } + QImage img(c_data[0], Col, Row, QImage::Format_Grayscale8); + viewer->setFixedSize(800, 800); + QPixmap pic = QPixmap::fromImage(img).scaledToHeight(800, Qt::SmoothTransformation); + QPainter painter(&pic); + QPen pen; + pen.setStyle(Qt::DashLine); + pen.setWidth(3); + QFont font("Futura"); + font.setPixelSize(26); + font.setBold(true); + painter.setFont(font); + pen.setColor(QColor(255, 255, 0)); + painter.setPen(pen); + painter.drawText(400 - 13 * 5, 400 + 13, "Loading..."); + viewer->setPixmap(pic); + }); - connect(EventCenter::Default(),&EventCenter::ResponsePreviewData,[=](QObject* sender,QObject* data){ - if (!data)return; - static const size_t Row = 140; - static const size_t Col = 140; - static const float pixelSpacing = 1.5f; - static const float halfROIWidth = 100.0f; - QByteArray* array = (QByteArray*)data; - uchar* raw_dataptr = (uchar*)array->data(); - uchar c_data[Row][Col]; - uchar* data_ptr = c_data[0]; - for(int i=0;idata(); + uchar c_data[Row][Col]; + uchar* data_ptr = c_data[0]; + for (int i = 0; i < Row; i++) { + data_ptr = c_data[i]; + memcpy(data_ptr, raw_dataptr, Col); + raw_dataptr += Col; - } - raw_dataptr = (uchar*)array->data(); - QImage img(c_data[0] , Col, Row, QImage::Format_Grayscale8); - viewer->setFixedSize(800,800); - QPixmap pic = QPixmap::fromImage(img).scaledToHeight(800,Qt::SmoothTransformation); - QPainter painter(&pic); - QPen pen; - pen.setColor(QColor(255,255,0,100)); - pen.setStyle(Qt::DashLine); - pen.setWidth(3); - QFont font("Futura"); - font.setPixelSize(26); - font.setBold(true); - painter.setFont(font); - painter.setPen(pen); - static int borderSpacing = round(((pixelSpacing*(Row*0.5f)-halfROIWidth)*(800.0f/(1.5f*140.0f)))); - painter.drawLine(borderSpacing,borderSpacing,borderSpacing,800-borderSpacing); - painter.drawLine(borderSpacing+1,borderSpacing,800-borderSpacing,borderSpacing); - painter.drawLine(borderSpacing+1,800-borderSpacing,800-borderSpacing,800-borderSpacing); - painter.drawLine(800-borderSpacing,borderSpacing+1,800-borderSpacing,800-borderSpacing-1); - pen.setColor(QColor(255,255,0)); - painter.setPen(pen); -// painter.drawText(335,40,"Previewing"); - painter.drawText(borderSpacing+13,400+13,"L"); - painter.drawText(800-borderSpacing-30,400+13,"R"); - painter.drawText(400-13,borderSpacing+30,"H"); - painter.drawText(400-13,800-borderSpacing-13,"F"); - painter.drawText(borderSpacing+6,borderSpacing+30,"ROI"); - viewer->setPixmap(pic); - }); - connect(EventCenter::Default(),&EventCenter::PatientSelected,[=](QObject* sender,QObject* data){ - patient_information->setPatientInformation((PatientInformation*)data); - }); - connect(btnRefresh,&QToolButton::clicked,[=](){ - QString patientInf(patient_information->getCurrentPatientJsonString(false)); - LOG_USER_OPERATION(StartRefresh); - EventCenter::Default()->triggerEvent(GUIEvents::RequestEmptyScan, nullptr, (QObject*)(&patientInf)); - }); - connect(btnPreview,&QToolButton::clicked,[=](){ - LOG_USER_OPERATION(StartPreview); - EventCenter::Default()->triggerEvent(GUIEvents::RequestPreviewScan, nullptr, nullptr); - }); - connect(btnScan,&QToolButton::clicked,[=](){ - QString patientInf(patient_information->getCurrentPatientJsonString(false)); - LOG_USER_OPERATION(StartScan); - EventCenter::Default()->triggerEvent(GUIEvents::RequestPatientScan, nullptr, (QObject*)(&patientInf)); - }); - connect(btnStop,&QToolButton::clicked,[=](){ - LOG_USER_OPERATION(Stop); - EventCenter::Default()->triggerEvent(GUIEvents::RequestStop, nullptr, nullptr); - }); + } + raw_dataptr = (uchar*)array->data(); + QImage img(c_data[0], Col, Row, QImage::Format_Grayscale8); + viewer->setFixedSize(800, 800); + QPixmap pic = QPixmap::fromImage(img).scaledToHeight(800, Qt::SmoothTransformation); + QPainter painter(&pic); + QPen pen; + pen.setColor(QColor(255, 255, 0, 100)); + pen.setStyle(Qt::DashLine); + pen.setWidth(3); + QFont font("Futura"); + font.setPixelSize(26); + font.setBold(true); + painter.setFont(font); + painter.setPen(pen); + static int borderSpacing = round(((pixelSpacing * (Row * 0.5f) - halfROIWidth) * (800.0f / (1.5f * 140.0f)))); + painter.drawLine(borderSpacing, borderSpacing, borderSpacing, 800 - borderSpacing); + painter.drawLine(borderSpacing + 1, borderSpacing, 800 - borderSpacing, borderSpacing); + painter.drawLine(borderSpacing + 1, 800 - borderSpacing, 800 - borderSpacing, 800 - borderSpacing); + painter.drawLine(800 - borderSpacing, borderSpacing + 1, 800 - borderSpacing, 800 - borderSpacing - 1); + pen.setColor(QColor(255, 255, 0)); + painter.setPen(pen); + // painter.drawText(335,40,"Previewing"); + painter.drawText(borderSpacing + 13, 400 + 13, "L"); + painter.drawText(800 - borderSpacing - 30, 400 + 13, "R"); + painter.drawText(400 - 13, borderSpacing + 30, "H"); + painter.drawText(400 - 13, 800 - borderSpacing - 13, "F"); + painter.drawText(borderSpacing + 6, borderSpacing + 30, "ROI"); + viewer->setPixmap(pic); + }); + connect(EventCenter::Default(), &EventCenter::PatientSelected, [=](QObject* sender, QObject* data) { + patient_information->setPatientInformation((PatientInformation*)data); + }); + connect(btnRefresh, &QToolButton::clicked, [=]() { + QString patientInf(patient_information->getCurrentPatientJsonString(false)); + LOG_USER_OPERATION(StartRefresh); + EventCenter::Default()->triggerEvent(GUIEvents::RequestEmptyScan, nullptr, (QObject*)(&patientInf)); + }); + connect(btnPreview, &QToolButton::clicked, [=]() { + LOG_USER_OPERATION(StartPreview); + EventCenter::Default()->triggerEvent(GUIEvents::RequestPreviewScan, nullptr, nullptr); + }); + connect(btnScan, &QToolButton::clicked, [=]() { + QString patientInf(patient_information->getCurrentPatientJsonString(false)); + LOG_USER_OPERATION(StartScan); + EventCenter::Default()->triggerEvent(GUIEvents::RequestPatientScan, nullptr, (QObject*)(&patientInf)); + }); + connect(btnStop, &QToolButton::clicked, [=]() { + LOG_USER_OPERATION(Stop); + EventCenter::Default()->triggerEvent(GUIEvents::RequestStop, nullptr, nullptr); + }); - connect(group, SIGNAL(buttonClicked(int)),this,SLOT(protocolChanged(int))); + connect(group, SIGNAL(buttonClicked(int)), this, SLOT(protocolChanged(int))); - previewfunc = [=](bool val)->void{ - viewer->setVisible(val); - btnPreview->setCheckable(val); - btnPreview->setChecked(val); - btnPreview->setEnabled(!val); - btnRefresh->setEnabled(!val); - btnScan->setEnabled(!val); - }; + previewfunc = [=](bool val)->void { + viewer->setVisible(val); + btnPreview->setCheckable(val); + btnPreview->setChecked(val); + btnPreview->setEnabled(!val); + btnRefresh->setEnabled(!val); + btnScan->setEnabled(!val); + }; } ScanFormWidget::~ScanFormWidget() { @@ -251,12 +254,12 @@ ScanFormWidget::~ScanFormWidget() { } void ScanFormWidget::protocolChanged(int type) { - printf("%d\r\n",type); - pat_inf->setProtocol(type); + printf("%d\r\n", type); + pat_inf->setProtocol(type); } void ScanFormWidget::setPreviewing(bool val) { - if(previewfunc) previewfunc(val); + if (previewfunc) previewfunc(val); } diff --git a/src/translations/zh_CN.ts b/src/translations/zh_CN.ts index 11798d3..fffc150 100644 --- a/src/translations/zh_CN.ts +++ b/src/translations/zh_CN.ts @@ -260,7 +260,7 @@ ID - + 编号 @@ -566,33 +566,43 @@ 扫描协议 - - Refresh - 拉取 + + LEFT + 左侧 - + + RIGHT + 右侧 + + + + Refresh + 空扫 + + + Preview 预扫 - + Stop 停止 - + Scan 扫描 - + Preview Parameters 预览参数 - - + + some settings parameters @@ -600,7 +610,7 @@ parameters XXX - + Scan Parameters 扫描参数 @@ -670,102 +680,102 @@ parameters networkCfgDialog - + Network Settings 网络配置 - + Address IP配置 - - + + IP Address IP地址 - + Dynamic Address 动态地址 - + Dev 设备 - + Subnet Mask 子网掩码 - + Additional Address 额外地址 - - + + Add 新增 - - + + Edit 编辑 - - + + Delete 删除 - + Routing 路由配置 - + Default IPv4 Gateway 默认网关 - + Routing Table 路由表 - + Result 结果 - - + + Netmask 子网掩码 - + Destination 目标地址 - + Gateway 网关 - + Apply 应用 - + Cancel 取消 diff --git a/src/translations/zh_CN.ts.bak b/src/translations/zh_CN.ts.bak index 11798d3..fffc150 100644 --- a/src/translations/zh_CN.ts.bak +++ b/src/translations/zh_CN.ts.bak @@ -260,7 +260,7 @@ ID - + 编号 @@ -566,33 +566,43 @@ 扫描协议 - - Refresh - 拉取 + + LEFT + 左侧 - + + RIGHT + 右侧 + + + + Refresh + 空扫 + + + Preview 预扫 - + Stop 停止 - + Scan 扫描 - + Preview Parameters 预览参数 - - + + some settings parameters @@ -600,7 +610,7 @@ parameters XXX - + Scan Parameters 扫描参数 @@ -670,102 +680,102 @@ parameters networkCfgDialog - + Network Settings 网络配置 - + Address IP配置 - - + + IP Address IP地址 - + Dynamic Address 动态地址 - + Dev 设备 - + Subnet Mask 子网掩码 - + Additional Address 额外地址 - - + + Add 新增 - - + + Edit 编辑 - - + + Delete 删除 - + Routing 路由配置 - + Default IPv4 Gateway 默认网关 - + Routing Table 路由表 - + Result 结果 - - + + Netmask 子网掩码 - + Destination 目标地址 - + Gateway 网关 - + Apply 应用 - + Cancel 取消