#include "mainwindow.h" #include "ui_mainwindow.h" #include #include #include #include "CWorker/worker.h" #ifdef WIN32 #pragma execution_character_set("utf-8") #endif Core::Core(QObject *parent) : QObject(parent) { Worker *worker = new Worker; worker->moveToThread(&mWorkerThread); connect(&mWorkerThread, &QThread::finished, worker, &QObject::deleteLater); connect(this, &Core::operate, worker, &Worker::doWork); connect(worker, &Worker::resultReady, this, &Core::handleResults); // Qt接口 mWorkerThread.start(); } void Core::handleCmd(const QString &func, const QStringList &keys, const QStringList &values) { qDebug() << func << keys << values; QString cmd = "0"; if (func == "selectFile") { QFileDialog dialog; QString fileName = dialog.getOpenFileName(NULL, tr("selectFile"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)")); } else if (func == "selectDir") { QFileDialog dialog; dialog.setFileMode(QFileDialog::Directory); QString fileName = dialog.getOpenFileName(NULL, tr("selectDir"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)")); } else { RstData rstData; if (keys.size() != values.size() || values.size() != 2) { rstData.retCode = RET_PARAMERR; rstData.msg = RET_MSG[rstData.retCode]; emit operateResult(MyCommon::GetJsonData(rstData)); return; } if (values[0] == "admin" && values[1] == "admin") { cmd = "1"; } } emit operate(WORK_DB_QUERY, func, cmd); } void Core::handleResults(const RstData &rstData) { qDebug() << "[handleResults]result.size()=" << rstData.func << "," << rstData.retCode << "," << rstData.msg; emit operateResult(MyCommon::GetJsonData(rstData)); } MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); this->setWindowTitle("电子侦察平台任务模拟软件");//设置标题内容 this->setWindowIcon(QIcon(":/image/images/logo.ico")); this->resize(1380,820); //设置固定大小 this->setMinimumSize(1380,820); ui->webView->setContextMenuPolicy(Qt::NoContextMenu); // 定义交互类,通过channel与html交互 QWebChannel *channel = new QWebChannel(this); channel->registerObject(QStringLiteral("core"), &mCore); ui->webView->page()->setWebChannel(channel); ui->webView->setUrl(QUrl("qrc:/investdist/index.html")); } MainWindow::~MainWindow() { delete ui; }