mainwindow.cpp 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. #include <QWebEngineView>
  4. #include <QWebChannel>
  5. #include <QFileDialog>
  6. #include "CWorker/worker.h"
  7. #ifdef WIN32
  8. #pragma execution_character_set("utf-8")
  9. #endif
  10. Core::Core(QObject *parent) : QObject(parent)
  11. {
  12. Worker *worker = new Worker;
  13. worker->moveToThread(&mWorkerThread);
  14. connect(&mWorkerThread, &QThread::finished, worker, &QObject::deleteLater);
  15. connect(this, &Core::operate, worker, &Worker::doWork);
  16. connect(worker, &Worker::resultReady, this, &Core::handleResults); // Qt接口
  17. mWorkerThread.start();
  18. }
  19. void Core::handleCmd(const QString &func, const QStringList &keys, const QStringList &values)
  20. {
  21. qDebug() << func << keys << values;
  22. QString cmd = "0";
  23. if (func == "selectFile")
  24. {
  25. QFileDialog dialog;
  26. QString fileName = dialog.getOpenFileName(NULL,
  27. tr("selectFile"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)"));
  28. }
  29. else if (func == "selectDir")
  30. {
  31. QFileDialog dialog;
  32. dialog.setFileMode(QFileDialog::Directory);
  33. QString fileName = dialog.getOpenFileName(NULL,
  34. tr("selectDir"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)"));
  35. }
  36. else
  37. {
  38. RstData rstData;
  39. if (keys.size() != values.size() || values.size() != 2)
  40. {
  41. rstData.retCode = RET_PARAMERR;
  42. rstData.msg = RET_MSG[rstData.retCode];
  43. emit operateResult(MyCommon::GetJsonData(rstData));
  44. return;
  45. }
  46. if (values[0] == "admin" && values[1] == "admin")
  47. {
  48. cmd = "1";
  49. }
  50. }
  51. emit operate(WORK_DB_QUERY, func, cmd);
  52. }
  53. void Core::handleResults(const RstData &rstData)
  54. {
  55. qDebug() << "[handleResults]result.size()=" << rstData.func << ","
  56. << rstData.retCode << "," << rstData.msg;
  57. emit operateResult(MyCommon::GetJsonData(rstData));
  58. }
  59. MainWindow::MainWindow(QWidget *parent)
  60. : QMainWindow(parent)
  61. , ui(new Ui::MainWindow)
  62. {
  63. ui->setupUi(this);
  64. this->setWindowTitle("电子侦察平台任务模拟软件");//设置标题内容
  65. this->setWindowIcon(QIcon(":/image/images/logo.ico"));
  66. this->resize(1380,820); //设置固定大小
  67. this->setMinimumSize(1380,820);
  68. ui->webView->setContextMenuPolicy(Qt::NoContextMenu);
  69. // 定义交互类,通过channel与html交互
  70. QWebChannel *channel = new QWebChannel(this);
  71. channel->registerObject(QStringLiteral("core"), &mCore);
  72. ui->webView->page()->setWebChannel(channel);
  73. ui->webView->setUrl(QUrl("qrc:/investdist/index.html"));
  74. }
  75. MainWindow::~MainWindow()
  76. {
  77. delete ui;
  78. }