#include "ReconFormWidget.h" #include "ui_tabformwidget.h" #include #include #include #include "components/SlideTableView.h" #include "db/SQLHelper.h" #include "ScanSearchCriteriaForm.h" ReconFormWidget::ReconFormWidget(QWidget *parent) : TabFormWidget(parent) , mBtnDiscard(new QToolButton(this)) , mBtnDelete(new QToolButton(this)) , mBtnRefresh(new QToolButton(this)) , mScanTable(new SlideTableView(this)) , mModel(nullptr){ auto layout = new QHBoxLayout(ui->commandWidget); layout->setAlignment(Qt::AlignmentFlag::AlignLeft); mBtnDiscard->setObjectName("btnDiscard"); mBtnDelete->setObjectName("btnDelete"); mBtnRefresh->setObjectName("btnRefreshData"); mBtnDiscard->setText(tr("Discard")); mBtnDelete->setText(tr("Delete")); mBtnRefresh->setText(tr("Refresh")); layout->addWidget(mBtnDiscard); layout->addWidget(mBtnDelete); layout->addSpacerItem(new QSpacerItem(20,20,QSizePolicy::Expanding)); addVerticalLine(layout); layout->addWidget(mBtnRefresh); initDataModel(); //Init content widget QWidget * widget = new ScanSearchCriteriaForm(this); widget->setObjectName("SearchCriteriaForm"); ui->horizontalLayout->insertWidget(0,widget); insertVerticalLine(1,ui->horizontalLayout); auto* contentLayout = new QHBoxLayout(this->ui->contentWidget); contentLayout->setContentsMargins(0, 0, 0, 0); initTableView(contentLayout); } void ReconFormWidget::initTableView(QHBoxLayout *contentLayout) {// TableView for Scan mScanTable->setAlternatingRowColors(true); mScanTable->setSelectionMode(QAbstractItemView::SingleSelection); mScanTable->setEditTriggers(QAbstractItemView::NoEditTriggers); mScanTable->setSelectionBehavior(QAbstractItemView::SelectRows); mScanTable->verticalHeader()->setDefaultSectionSize(38); mScanTable->horizontalHeader()->setStretchLastSection(true); //data from SQLITE // //avoid pan comsumed by tableview! mScanTable->viewport()->ungrabGesture(Qt::PanGesture); mScanTable->setSortingEnabled(true); // enable sortingEnabled mScanTable->setModel((QAbstractItemModel*) mModel); mScanTable->hideColumn(0); mScanTable->hideColumn(1); mScanTable->show(); mScanTable->setColumnWidth(2, 250); mScanTable->setColumnWidth(3, 200); mScanTable->setColumnWidth(4, 160); mScanTable->setColumnWidth(5, 250); mScanTable->setColumnWidth(6, 250); contentLayout->addWidget(mScanTable); //table current row selection changing event // after sort by column } void ReconFormWidget::initDataModel() {//TODO:单独初始化预防SQL错误 mModel = SQLHelper::getTable("Scan"); mModel->sort(5, Qt::DescendingOrder); mModel->select(); mModel->setHeaderData(2, Qt::Horizontal, "PatientID"); mModel->setHeaderData(5, Qt::Horizontal, tr("PatientName")); mModel->setHeaderData(3, Qt::Horizontal, tr("Scan Time")); mModel->setHeaderData(6, Qt::Horizontal, tr("Laterality")); mModel->setHeaderData(7, Qt::Horizontal, tr("OperatorName")); mModel->setHeaderData(8, Qt::Horizontal, tr("State")); }