diff --git a/CounterAcq/CounterAcq.pro b/CounterAcq/CounterAcq.pro index 38de4cb..4d3ddd8 100644 --- a/CounterAcq/CounterAcq.pro +++ b/CounterAcq/CounterAcq.pro @@ -27,3 +27,6 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += \ + res.qrc diff --git a/CounterAcq/CounterAcq.pro b/CounterAcq/CounterAcq.pro index 38de4cb..4d3ddd8 100644 --- a/CounterAcq/CounterAcq.pro +++ b/CounterAcq/CounterAcq.pro @@ -27,3 +27,6 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += \ + res.qrc diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index a5fe898..1bf8ace 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -1,4 +1,4 @@ -#include "CounterDevice.h" +#include "CounterDevice.h" #include #include @@ -9,9 +9,12 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) + { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() diff --git a/CounterAcq/CounterAcq.pro b/CounterAcq/CounterAcq.pro index 38de4cb..4d3ddd8 100644 --- a/CounterAcq/CounterAcq.pro +++ b/CounterAcq/CounterAcq.pro @@ -27,3 +27,6 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += \ + res.qrc diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index a5fe898..1bf8ace 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -1,4 +1,4 @@ -#include "CounterDevice.h" +#include "CounterDevice.h" #include #include @@ -9,9 +9,12 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) + { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() diff --git a/CounterAcq/CounterWindow.cpp b/CounterAcq/CounterWindow.cpp index 0b60d21..4953316 100644 --- a/CounterAcq/CounterWindow.cpp +++ b/CounterAcq/CounterWindow.cpp @@ -1,4 +1,4 @@ -#include "CounterWindow.h" +#include "CounterWindow.h" #include "ui_CounterWindow.h" #include @@ -20,9 +20,10 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 @@ -30,10 +31,21 @@ ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + setWindowIcon(QIcon(":/images/Counter.png")); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setIcon(QIcon(":/images/Counter.png")); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + trayIcon->show(); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &CounterWindow::onTrayIconActived); + // 设置主体区域的大小和位置 ui->scrollArea->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + httpReq = new HttpRequestController(this); // 1. 获取访问接口需要的token int retCode = this->initHttpToken(); @@ -215,5 +227,16 @@ void CounterWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); +} +void CounterWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } } diff --git a/CounterAcq/CounterAcq.pro b/CounterAcq/CounterAcq.pro index 38de4cb..4d3ddd8 100644 --- a/CounterAcq/CounterAcq.pro +++ b/CounterAcq/CounterAcq.pro @@ -27,3 +27,6 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += \ + res.qrc diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index a5fe898..1bf8ace 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -1,4 +1,4 @@ -#include "CounterDevice.h" +#include "CounterDevice.h" #include #include @@ -9,9 +9,12 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) + { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() diff --git a/CounterAcq/CounterWindow.cpp b/CounterAcq/CounterWindow.cpp index 0b60d21..4953316 100644 --- a/CounterAcq/CounterWindow.cpp +++ b/CounterAcq/CounterWindow.cpp @@ -1,4 +1,4 @@ -#include "CounterWindow.h" +#include "CounterWindow.h" #include "ui_CounterWindow.h" #include @@ -20,9 +20,10 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 @@ -30,10 +31,21 @@ ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + setWindowIcon(QIcon(":/images/Counter.png")); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setIcon(QIcon(":/images/Counter.png")); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + trayIcon->show(); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &CounterWindow::onTrayIconActived); + // 设置主体区域的大小和位置 ui->scrollArea->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + httpReq = new HttpRequestController(this); // 1. 获取访问接口需要的token int retCode = this->initHttpToken(); @@ -215,5 +227,16 @@ void CounterWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); +} +void CounterWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } } diff --git a/CounterAcq/CounterWindow.h b/CounterAcq/CounterWindow.h index ec8c3f2..763f186 100644 --- a/CounterAcq/CounterWindow.h +++ b/CounterAcq/CounterWindow.h @@ -1,8 +1,9 @@ -#ifndef COUNTERWINDOW_H +#ifndef COUNTERWINDOW_H #define COUNTERWINDOW_H #include #include +#include #include #include @@ -28,6 +29,7 @@ private slots: void on_minButt_clicked(); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: int initHttpToken(); @@ -35,6 +37,7 @@ QJsonObject initDeviceList(); Ui::CounterWindow *ui; + QSystemTrayIcon * trayIcon; HttpRequestController * httpReq; diff --git a/CounterAcq/CounterAcq.pro b/CounterAcq/CounterAcq.pro index 38de4cb..4d3ddd8 100644 --- a/CounterAcq/CounterAcq.pro +++ b/CounterAcq/CounterAcq.pro @@ -27,3 +27,6 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += \ + res.qrc diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index a5fe898..1bf8ace 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -1,4 +1,4 @@ -#include "CounterDevice.h" +#include "CounterDevice.h" #include #include @@ -9,9 +9,12 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) + { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() diff --git a/CounterAcq/CounterWindow.cpp b/CounterAcq/CounterWindow.cpp index 0b60d21..4953316 100644 --- a/CounterAcq/CounterWindow.cpp +++ b/CounterAcq/CounterWindow.cpp @@ -1,4 +1,4 @@ -#include "CounterWindow.h" +#include "CounterWindow.h" #include "ui_CounterWindow.h" #include @@ -20,9 +20,10 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 @@ -30,10 +31,21 @@ ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + setWindowIcon(QIcon(":/images/Counter.png")); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setIcon(QIcon(":/images/Counter.png")); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + trayIcon->show(); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &CounterWindow::onTrayIconActived); + // 设置主体区域的大小和位置 ui->scrollArea->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + httpReq = new HttpRequestController(this); // 1. 获取访问接口需要的token int retCode = this->initHttpToken(); @@ -215,5 +227,16 @@ void CounterWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); +} +void CounterWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } } diff --git a/CounterAcq/CounterWindow.h b/CounterAcq/CounterWindow.h index ec8c3f2..763f186 100644 --- a/CounterAcq/CounterWindow.h +++ b/CounterAcq/CounterWindow.h @@ -1,8 +1,9 @@ -#ifndef COUNTERWINDOW_H +#ifndef COUNTERWINDOW_H #define COUNTERWINDOW_H #include #include +#include #include #include @@ -28,6 +29,7 @@ private slots: void on_minButt_clicked(); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: int initHttpToken(); @@ -35,6 +37,7 @@ QJsonObject initDeviceList(); Ui::CounterWindow *ui; + QSystemTrayIcon * trayIcon; HttpRequestController * httpReq; diff --git a/CounterAcq/CounterWindow.ui b/CounterAcq/CounterWindow.ui index 659d15b..6d7437d 100644 --- a/CounterAcq/CounterWindow.ui +++ b/CounterAcq/CounterWindow.ui @@ -51,7 +51,7 @@ - 400 + 500 10 250 40 @@ -61,7 +61,7 @@ - 250 + 350 0 150 60 @@ -88,7 +88,7 @@ 20 0 - 200 + 300 60 diff --git a/CounterAcq/CounterAcq.pro b/CounterAcq/CounterAcq.pro index 38de4cb..4d3ddd8 100644 --- a/CounterAcq/CounterAcq.pro +++ b/CounterAcq/CounterAcq.pro @@ -27,3 +27,6 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += \ + res.qrc diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index a5fe898..1bf8ace 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -1,4 +1,4 @@ -#include "CounterDevice.h" +#include "CounterDevice.h" #include #include @@ -9,9 +9,12 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) + { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() diff --git a/CounterAcq/CounterWindow.cpp b/CounterAcq/CounterWindow.cpp index 0b60d21..4953316 100644 --- a/CounterAcq/CounterWindow.cpp +++ b/CounterAcq/CounterWindow.cpp @@ -1,4 +1,4 @@ -#include "CounterWindow.h" +#include "CounterWindow.h" #include "ui_CounterWindow.h" #include @@ -20,9 +20,10 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 @@ -30,10 +31,21 @@ ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + setWindowIcon(QIcon(":/images/Counter.png")); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setIcon(QIcon(":/images/Counter.png")); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + trayIcon->show(); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &CounterWindow::onTrayIconActived); + // 设置主体区域的大小和位置 ui->scrollArea->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + httpReq = new HttpRequestController(this); // 1. 获取访问接口需要的token int retCode = this->initHttpToken(); @@ -215,5 +227,16 @@ void CounterWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); +} +void CounterWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } } diff --git a/CounterAcq/CounterWindow.h b/CounterAcq/CounterWindow.h index ec8c3f2..763f186 100644 --- a/CounterAcq/CounterWindow.h +++ b/CounterAcq/CounterWindow.h @@ -1,8 +1,9 @@ -#ifndef COUNTERWINDOW_H +#ifndef COUNTERWINDOW_H #define COUNTERWINDOW_H #include #include +#include #include #include @@ -28,6 +29,7 @@ private slots: void on_minButt_clicked(); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: int initHttpToken(); @@ -35,6 +37,7 @@ QJsonObject initDeviceList(); Ui::CounterWindow *ui; + QSystemTrayIcon * trayIcon; HttpRequestController * httpReq; diff --git a/CounterAcq/CounterWindow.ui b/CounterAcq/CounterWindow.ui index 659d15b..6d7437d 100644 --- a/CounterAcq/CounterWindow.ui +++ b/CounterAcq/CounterWindow.ui @@ -51,7 +51,7 @@ - 400 + 500 10 250 40 @@ -61,7 +61,7 @@ - 250 + 350 0 150 60 @@ -88,7 +88,7 @@ 20 0 - 200 + 300 60 diff --git a/CounterAcq/common/utils/SettingConfig.cpp b/CounterAcq/common/utils/SettingConfig.cpp index 41a155c..e30a437 100644 --- a/CounterAcq/common/utils/SettingConfig.cpp +++ b/CounterAcq/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); BAUD_RATE = getProperty("com", "baudRate").toInt(); @@ -22,6 +23,7 @@ WORK_TYPE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/CounterAcq/CounterAcq.pro b/CounterAcq/CounterAcq.pro index 38de4cb..4d3ddd8 100644 --- a/CounterAcq/CounterAcq.pro +++ b/CounterAcq/CounterAcq.pro @@ -27,3 +27,6 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += \ + res.qrc diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index a5fe898..1bf8ace 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -1,4 +1,4 @@ -#include "CounterDevice.h" +#include "CounterDevice.h" #include #include @@ -9,9 +9,12 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) + { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() diff --git a/CounterAcq/CounterWindow.cpp b/CounterAcq/CounterWindow.cpp index 0b60d21..4953316 100644 --- a/CounterAcq/CounterWindow.cpp +++ b/CounterAcq/CounterWindow.cpp @@ -1,4 +1,4 @@ -#include "CounterWindow.h" +#include "CounterWindow.h" #include "ui_CounterWindow.h" #include @@ -20,9 +20,10 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 @@ -30,10 +31,21 @@ ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + setWindowIcon(QIcon(":/images/Counter.png")); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setIcon(QIcon(":/images/Counter.png")); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + trayIcon->show(); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &CounterWindow::onTrayIconActived); + // 设置主体区域的大小和位置 ui->scrollArea->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + httpReq = new HttpRequestController(this); // 1. 获取访问接口需要的token int retCode = this->initHttpToken(); @@ -215,5 +227,16 @@ void CounterWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); +} +void CounterWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } } diff --git a/CounterAcq/CounterWindow.h b/CounterAcq/CounterWindow.h index ec8c3f2..763f186 100644 --- a/CounterAcq/CounterWindow.h +++ b/CounterAcq/CounterWindow.h @@ -1,8 +1,9 @@ -#ifndef COUNTERWINDOW_H +#ifndef COUNTERWINDOW_H #define COUNTERWINDOW_H #include #include +#include #include #include @@ -28,6 +29,7 @@ private slots: void on_minButt_clicked(); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: int initHttpToken(); @@ -35,6 +37,7 @@ QJsonObject initDeviceList(); Ui::CounterWindow *ui; + QSystemTrayIcon * trayIcon; HttpRequestController * httpReq; diff --git a/CounterAcq/CounterWindow.ui b/CounterAcq/CounterWindow.ui index 659d15b..6d7437d 100644 --- a/CounterAcq/CounterWindow.ui +++ b/CounterAcq/CounterWindow.ui @@ -51,7 +51,7 @@ - 400 + 500 10 250 40 @@ -61,7 +61,7 @@ - 250 + 350 0 150 60 @@ -88,7 +88,7 @@ 20 0 - 200 + 300 60 diff --git a/CounterAcq/common/utils/SettingConfig.cpp b/CounterAcq/common/utils/SettingConfig.cpp index 41a155c..e30a437 100644 --- a/CounterAcq/common/utils/SettingConfig.cpp +++ b/CounterAcq/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); BAUD_RATE = getProperty("com", "baudRate").toInt(); @@ -22,6 +23,7 @@ WORK_TYPE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/CounterAcq/common/utils/SettingConfig.h b/CounterAcq/common/utils/SettingConfig.h index 300023e..f7dc7e5 100644 --- a/CounterAcq/common/utils/SettingConfig.h +++ b/CounterAcq/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -44,6 +44,7 @@ QString WORK_TYPE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/CounterAcq/CounterAcq.pro b/CounterAcq/CounterAcq.pro index 38de4cb..4d3ddd8 100644 --- a/CounterAcq/CounterAcq.pro +++ b/CounterAcq/CounterAcq.pro @@ -27,3 +27,6 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += \ + res.qrc diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index a5fe898..1bf8ace 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -1,4 +1,4 @@ -#include "CounterDevice.h" +#include "CounterDevice.h" #include #include @@ -9,9 +9,12 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) + { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() diff --git a/CounterAcq/CounterWindow.cpp b/CounterAcq/CounterWindow.cpp index 0b60d21..4953316 100644 --- a/CounterAcq/CounterWindow.cpp +++ b/CounterAcq/CounterWindow.cpp @@ -1,4 +1,4 @@ -#include "CounterWindow.h" +#include "CounterWindow.h" #include "ui_CounterWindow.h" #include @@ -20,9 +20,10 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 @@ -30,10 +31,21 @@ ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + setWindowIcon(QIcon(":/images/Counter.png")); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setIcon(QIcon(":/images/Counter.png")); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + trayIcon->show(); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &CounterWindow::onTrayIconActived); + // 设置主体区域的大小和位置 ui->scrollArea->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + httpReq = new HttpRequestController(this); // 1. 获取访问接口需要的token int retCode = this->initHttpToken(); @@ -215,5 +227,16 @@ void CounterWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); +} +void CounterWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } } diff --git a/CounterAcq/CounterWindow.h b/CounterAcq/CounterWindow.h index ec8c3f2..763f186 100644 --- a/CounterAcq/CounterWindow.h +++ b/CounterAcq/CounterWindow.h @@ -1,8 +1,9 @@ -#ifndef COUNTERWINDOW_H +#ifndef COUNTERWINDOW_H #define COUNTERWINDOW_H #include #include +#include #include #include @@ -28,6 +29,7 @@ private slots: void on_minButt_clicked(); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: int initHttpToken(); @@ -35,6 +37,7 @@ QJsonObject initDeviceList(); Ui::CounterWindow *ui; + QSystemTrayIcon * trayIcon; HttpRequestController * httpReq; diff --git a/CounterAcq/CounterWindow.ui b/CounterAcq/CounterWindow.ui index 659d15b..6d7437d 100644 --- a/CounterAcq/CounterWindow.ui +++ b/CounterAcq/CounterWindow.ui @@ -51,7 +51,7 @@ - 400 + 500 10 250 40 @@ -61,7 +61,7 @@ - 250 + 350 0 150 60 @@ -88,7 +88,7 @@ 20 0 - 200 + 300 60 diff --git a/CounterAcq/common/utils/SettingConfig.cpp b/CounterAcq/common/utils/SettingConfig.cpp index 41a155c..e30a437 100644 --- a/CounterAcq/common/utils/SettingConfig.cpp +++ b/CounterAcq/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); BAUD_RATE = getProperty("com", "baudRate").toInt(); @@ -22,6 +23,7 @@ WORK_TYPE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/CounterAcq/common/utils/SettingConfig.h b/CounterAcq/common/utils/SettingConfig.h index 300023e..f7dc7e5 100644 --- a/CounterAcq/common/utils/SettingConfig.h +++ b/CounterAcq/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -44,6 +44,7 @@ QString WORK_TYPE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/CounterAcq/images/Counter.png b/CounterAcq/images/Counter.png new file mode 100644 index 0000000..cf82600 --- /dev/null +++ b/CounterAcq/images/Counter.png Binary files differ diff --git a/CounterAcq/CounterAcq.pro b/CounterAcq/CounterAcq.pro index 38de4cb..4d3ddd8 100644 --- a/CounterAcq/CounterAcq.pro +++ b/CounterAcq/CounterAcq.pro @@ -27,3 +27,6 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += \ + res.qrc diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index a5fe898..1bf8ace 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -1,4 +1,4 @@ -#include "CounterDevice.h" +#include "CounterDevice.h" #include #include @@ -9,9 +9,12 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) + { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() diff --git a/CounterAcq/CounterWindow.cpp b/CounterAcq/CounterWindow.cpp index 0b60d21..4953316 100644 --- a/CounterAcq/CounterWindow.cpp +++ b/CounterAcq/CounterWindow.cpp @@ -1,4 +1,4 @@ -#include "CounterWindow.h" +#include "CounterWindow.h" #include "ui_CounterWindow.h" #include @@ -20,9 +20,10 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 @@ -30,10 +31,21 @@ ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + setWindowIcon(QIcon(":/images/Counter.png")); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setIcon(QIcon(":/images/Counter.png")); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + trayIcon->show(); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &CounterWindow::onTrayIconActived); + // 设置主体区域的大小和位置 ui->scrollArea->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + httpReq = new HttpRequestController(this); // 1. 获取访问接口需要的token int retCode = this->initHttpToken(); @@ -215,5 +227,16 @@ void CounterWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); +} +void CounterWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } } diff --git a/CounterAcq/CounterWindow.h b/CounterAcq/CounterWindow.h index ec8c3f2..763f186 100644 --- a/CounterAcq/CounterWindow.h +++ b/CounterAcq/CounterWindow.h @@ -1,8 +1,9 @@ -#ifndef COUNTERWINDOW_H +#ifndef COUNTERWINDOW_H #define COUNTERWINDOW_H #include #include +#include #include #include @@ -28,6 +29,7 @@ private slots: void on_minButt_clicked(); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: int initHttpToken(); @@ -35,6 +37,7 @@ QJsonObject initDeviceList(); Ui::CounterWindow *ui; + QSystemTrayIcon * trayIcon; HttpRequestController * httpReq; diff --git a/CounterAcq/CounterWindow.ui b/CounterAcq/CounterWindow.ui index 659d15b..6d7437d 100644 --- a/CounterAcq/CounterWindow.ui +++ b/CounterAcq/CounterWindow.ui @@ -51,7 +51,7 @@ - 400 + 500 10 250 40 @@ -61,7 +61,7 @@ - 250 + 350 0 150 60 @@ -88,7 +88,7 @@ 20 0 - 200 + 300 60 diff --git a/CounterAcq/common/utils/SettingConfig.cpp b/CounterAcq/common/utils/SettingConfig.cpp index 41a155c..e30a437 100644 --- a/CounterAcq/common/utils/SettingConfig.cpp +++ b/CounterAcq/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); BAUD_RATE = getProperty("com", "baudRate").toInt(); @@ -22,6 +23,7 @@ WORK_TYPE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/CounterAcq/common/utils/SettingConfig.h b/CounterAcq/common/utils/SettingConfig.h index 300023e..f7dc7e5 100644 --- a/CounterAcq/common/utils/SettingConfig.h +++ b/CounterAcq/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -44,6 +44,7 @@ QString WORK_TYPE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/CounterAcq/images/Counter.png b/CounterAcq/images/Counter.png new file mode 100644 index 0000000..cf82600 --- /dev/null +++ b/CounterAcq/images/Counter.png Binary files differ diff --git a/CounterAcq/res.qrc b/CounterAcq/res.qrc new file mode 100644 index 0000000..d586252 --- /dev/null +++ b/CounterAcq/res.qrc @@ -0,0 +1,5 @@ + + + images/Counter.png + +