change_code/src/pages/functionsearch/uft3functionsearchpage.cpp

97 lines
3.1 KiB
C++

#include "uft3functionsearchpage.h"
#include "src/utils/datacache.h"
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QTableWidgetItem>
#include <QHeaderView>
#include <QMessageBox>
#include "ElaComboBox.h"
#include "ElaLineEdit.h"
#include "ElaPushButton.h"
UFT3FunctionSearchPage::UFT3FunctionSearchPage(QWidget *parent)
: QWidget(parent)
{
initUI();
}
UFT3FunctionSearchPage::~UFT3FunctionSearchPage()
{
}
void UFT3FunctionSearchPage::initUI()
{
QVBoxLayout *layout = new QVBoxLayout(this);
layout->setContentsMargins(30, 30, 30, 30);
layout->setSpacing(20);
QHBoxLayout *searchLayout = new QHBoxLayout;
searchLayout->setSpacing(10);
m_searchComboBox = new ElaComboBox;
m_searchComboBox->addItem("功能名称", "cname");
m_searchComboBox->addItem("功能编号", "function_no");
searchLayout->addWidget(m_searchComboBox);
m_searchEdit = new ElaLineEdit;
m_searchEdit->setPlaceholderText("输入查询内容");
m_searchEdit->setMinimumWidth(300);
searchLayout->addWidget(m_searchEdit);
ElaPushButton *searchBtn = new ElaPushButton("搜索");
connect(searchBtn, &QPushButton::clicked, this, &UFT3FunctionSearchPage::onSearch);
searchLayout->addWidget(searchBtn);
searchLayout->addStretch();
layout->addLayout(searchLayout);
m_resultTable = new QTableWidget;
m_resultTable->setColumnCount(3);
m_resultTable->setHorizontalHeaderLabels({"英文名", "功能编号", "功能名称"});
m_resultTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
m_resultTable->setMinimumHeight(400);
m_resultTable->setSelectionBehavior(QAbstractItemView::SelectRows);
m_resultTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
layout->addWidget(m_resultTable);
}
void UFT3FunctionSearchPage::onSearch()
{
QString keyword = m_searchEdit->text().trimmed();
m_resultTable->setRowCount(0);
if (keyword.isEmpty()) {
QMessageBox::information(this, "提示", "请输入查询内容");
return;
}
QString field = m_searchComboBox->currentData().toString();
QList<FunctionInfo> results = DataCache::instance()->searchUFT3Functions(keyword, field);
if (results.isEmpty()) {
QMessageBox::information(this, "提示", "未找到匹配的功能");
return;
}
int row = 0;
for (const FunctionInfo& info : results) {
m_resultTable->insertRow(row);
QTableWidgetItem *cnameItem = new QTableWidgetItem(info.cname);
cnameItem->setFlags(cnameItem->flags() & ~Qt::ItemIsEditable);
m_resultTable->setItem(row, 0, cnameItem);
QTableWidgetItem *eNameItem = new QTableWidgetItem(info.eName);
eNameItem->setFlags(eNameItem->flags() & ~Qt::ItemIsEditable);
m_resultTable->setItem(row, 1, eNameItem);
QTableWidgetItem *funcNoItem = new QTableWidgetItem(info.functionNo);
funcNoItem->setFlags(funcNoItem->flags() & ~Qt::ItemIsEditable);
m_resultTable->setItem(row, 2, funcNoItem);
row++;
}
}