Change UI logic, add message prompt, add scan logic and preivewing rendering logic.
This commit is contained in:
@@ -11,13 +11,16 @@
|
||||
#include "patientinformationform.h"
|
||||
#include <QButtonGroup>
|
||||
#include "event/EventCenter.h"
|
||||
#include <QImage>
|
||||
#include <QPainter>
|
||||
|
||||
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}"
|
||||
"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#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}"
|
||||
@@ -123,17 +126,57 @@ ScanFormWidget::ScanFormWidget(QWidget *parent) : TabFormWidget(parent) {
|
||||
connect(EventCenter::Default(),&EventCenter::ResponsePreview,[=](QObject* sender,QObject* data){
|
||||
setPreviewing(true);
|
||||
});
|
||||
connect(EventCenter::Default(),&EventCenter::ResponsePreviewData,[=](QObject* sender,QObject* data){
|
||||
if (!data)return;
|
||||
QByteArray* array = (QByteArray*)data;
|
||||
uchar* raw_dataptr = (uchar*)array->data();
|
||||
uchar c_data[200][200];
|
||||
uchar* data_ptr = c_data[0];
|
||||
for(int i=0;i<200;i++){
|
||||
data_ptr = c_data[i];
|
||||
memcpy(data_ptr,raw_dataptr,200);
|
||||
raw_dataptr += 200;
|
||||
|
||||
}
|
||||
raw_dataptr = (uchar*)array->data();
|
||||
QImage img(c_data[0] , 200, 200, 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);
|
||||
painter.drawLine(29*4,29*4,29*4,171*4);
|
||||
painter.drawLine(29*4+1,29*4,171*4,29*4);
|
||||
painter.drawLine(29*4+1,171*4,171*4,171*4);
|
||||
painter.drawLine(171*4,29*4+1,171*4,171*4-1);
|
||||
pen.setColor(QColor(255,255,0));
|
||||
painter.setPen(pen);
|
||||
painter.drawText(335,80,"Previewing");
|
||||
painter.drawText(29*4,29*4-2,"ROI");
|
||||
viewer->setPixmap(pic);
|
||||
});
|
||||
connect(EventCenter::Default(),&EventCenter::PatientSelected,[=](QObject* sender,QObject* data){
|
||||
patient_information->setPatientInformation((PatientInformation*)data);
|
||||
});
|
||||
connect(btnRefresh,&QToolButton::clicked,[=](){
|
||||
EventCenter::Default()->triggerEvent(GUIEvents::RequestEmptyScan, nullptr, nullptr);
|
||||
QString patientInf(patient_information->getCurrentPatientJsonString(true));
|
||||
printf("%s\r\n",patientInf.toStdString().data());
|
||||
EventCenter::Default()->triggerEvent(GUIEvents::RequestEmptyScan, nullptr, (QObject*)(&patientInf));
|
||||
});
|
||||
connect(btnPreview,&QToolButton::clicked,[=](){
|
||||
EventCenter::Default()->triggerEvent(GUIEvents::RequestPreviewScan, nullptr, nullptr);
|
||||
});
|
||||
connect(btnScan,&QToolButton::clicked,[=](){
|
||||
EventCenter::Default()->triggerEvent(GUIEvents::RequestPatientScan, nullptr, nullptr);
|
||||
QString patientInf(patient_information->getCurrentPatientJsonString(false));
|
||||
printf("%s\r\n",patientInf.toStdString().data());
|
||||
EventCenter::Default()->triggerEvent(GUIEvents::RequestPatientScan, nullptr, (QObject*)(&patientInf));
|
||||
});
|
||||
connect(btnStop,&QToolButton::clicked,[=](){
|
||||
EventCenter::Default()->triggerEvent(GUIEvents::RequestStop, nullptr, nullptr);
|
||||
|
||||
Reference in New Issue
Block a user