feat:修改简化版煤溜界面
This commit is contained in:
parent
4189966cae
commit
1b8ec50f22
|
@ -34,6 +34,7 @@ SOURCES += \
|
||||||
mainwindow.cpp \
|
mainwindow.cpp \
|
||||||
view/beltspeedlinewidget.cpp \
|
view/beltspeedlinewidget.cpp \
|
||||||
view/coaldistributbarchartwidget.cpp \
|
view/coaldistributbarchartwidget.cpp \
|
||||||
|
view/coalstaticwidget.cpp\
|
||||||
view/coalstatisticschartwidget.cpp\
|
view/coalstatisticschartwidget.cpp\
|
||||||
component/ZDateEdit/dateCommonInfo.cpp\
|
component/ZDateEdit/dateCommonInfo.cpp\
|
||||||
component/ZDateEdit/zdateedit.cpp\
|
component/ZDateEdit/zdateedit.cpp\
|
||||||
|
@ -46,6 +47,7 @@ HEADERS += \
|
||||||
mainwindow.h \
|
mainwindow.h \
|
||||||
view/beltspeedlinewidget.h \
|
view/beltspeedlinewidget.h \
|
||||||
view/coaldistributbarchartwidget.h \
|
view/coaldistributbarchartwidget.h \
|
||||||
|
view/coalstaticwidget.h \
|
||||||
view/coalstatisticschartwidget.h\
|
view/coalstatisticschartwidget.h\
|
||||||
component/ZDateEdit/dateCommonInfo.h\
|
component/ZDateEdit/dateCommonInfo.h\
|
||||||
component/ZDateEdit/zdateedit.h\
|
component/ZDateEdit/zdateedit.h\
|
||||||
|
@ -55,6 +57,7 @@ HEADERS += \
|
||||||
|
|
||||||
FORMS += \
|
FORMS += \
|
||||||
mainwindow.ui \
|
mainwindow.ui \
|
||||||
|
view/coalstaticwidget.ui \
|
||||||
view/coalstatisticschartwidget.ui
|
view/coalstatisticschartwidget.ui
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 27 KiB |
123
mainwindow.cpp
123
mainwindow.cpp
|
@ -2,17 +2,18 @@
|
||||||
#include "ui_mainwindow.h"
|
#include "ui_mainwindow.h"
|
||||||
#include "view/beltspeedlinewidget.h"
|
#include "view/beltspeedlinewidget.h"
|
||||||
#include "view/coaldistributbarchartwidget.h"
|
#include "view/coaldistributbarchartwidget.h"
|
||||||
#include "view/coalstatisticschartwidget.h"
|
#include "view/coalstaticwidget.h"
|
||||||
|
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
|
||||||
MainWindow::MainWindow(QWidget *parent)
|
MainWindow::MainWindow(QWidget* parent)
|
||||||
: QMainWindow(parent), ui(new Ui::MainWindow) {
|
: QMainWindow(parent)
|
||||||
|
, ui(new Ui::MainWindow)
|
||||||
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
this->setWindowFlag(Qt::FramelessWindowHint);
|
this->setWindowFlag(Qt::FramelessWindowHint);
|
||||||
this->setWindowFlags(windowFlags() | Qt::WindowMaximizeButtonHint |
|
this->setWindowFlags(windowFlags() | Qt::WindowMaximizeButtonHint | Qt::WindowMinimizeButtonHint);
|
||||||
Qt::WindowMinimizeButtonHint);
|
|
||||||
|
|
||||||
ui->widget_head->installEventFilter(this);
|
ui->widget_head->installEventFilter(this);
|
||||||
|
|
||||||
|
@ -39,18 +40,17 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
|
|
||||||
MainWindow::~MainWindow() { delete ui; }
|
MainWindow::~MainWindow() { delete ui; }
|
||||||
|
|
||||||
bool MainWindow::eventFilter(QObject *watched, QEvent *event) {
|
bool MainWindow::eventFilter(QObject* watched, QEvent* event)
|
||||||
|
{
|
||||||
// 处理鼠标按下、释放和移动事件
|
// 处理鼠标按下、释放和移动事件
|
||||||
if (watched == ui->widget_head) {
|
if (watched == ui->widget_head) {
|
||||||
QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
|
QMouseEvent* mouseEvent = static_cast<QMouseEvent*>(event);
|
||||||
if (mouseEvent->type() == QEvent::MouseButtonPress) {
|
if (mouseEvent->type() == QEvent::MouseButtonPress) {
|
||||||
if (mouseEvent->button() == Qt::LeftButton) {
|
if (mouseEvent->button() == Qt::LeftButton) {
|
||||||
m_mousePressed = true; // 启动拖拽
|
m_mousePressed = true; // 启动拖拽
|
||||||
m_mousePoint = mouseEvent->globalPos() - this->pos();
|
m_mousePoint = mouseEvent->globalPos() - this->pos();
|
||||||
|
|
||||||
this->setWindowFlags(windowFlags() | Qt::WindowMaximizeButtonHint |
|
this->setWindowFlags(windowFlags() | Qt::WindowMaximizeButtonHint | Qt::WindowMinimizeButtonHint | Qt::Window | Qt::WindowStaysOnTopHint);
|
||||||
Qt::WindowMinimizeButtonHint | Qt::Window |
|
|
||||||
Qt::WindowStaysOnTopHint);
|
|
||||||
this->show(); // 确保窗口显示
|
this->show(); // 确保窗口显示
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -63,9 +63,7 @@ bool MainWindow::eventFilter(QObject *watched, QEvent *event) {
|
||||||
this->move(mouseEvent->globalPos() - m_mousePoint);
|
this->move(mouseEvent->globalPos() - m_mousePoint);
|
||||||
|
|
||||||
// 每次移动时设置为最上方
|
// 每次移动时设置为最上方
|
||||||
this->setWindowFlags(windowFlags() | Qt::WindowMaximizeButtonHint |
|
this->setWindowFlags(windowFlags() | Qt::WindowMaximizeButtonHint | Qt::WindowMinimizeButtonHint | Qt::Window | Qt::WindowStaysOnTopHint);
|
||||||
Qt::WindowMinimizeButtonHint | Qt::Window |
|
|
||||||
Qt::WindowStaysOnTopHint);
|
|
||||||
this->show();
|
this->show();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -73,7 +71,8 @@ bool MainWindow::eventFilter(QObject *watched, QEvent *event) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::addBeltWarnInfoToTextEdit(const QString &consoleInfo) {
|
void MainWindow::addBeltWarnInfoToTextEdit(const QString& consoleInfo)
|
||||||
|
{
|
||||||
qDebug() << consoleInfo;
|
qDebug() << consoleInfo;
|
||||||
m_textEditConsoleInfo.append(consoleInfo);
|
m_textEditConsoleInfo.append(consoleInfo);
|
||||||
QDateTime startDateTime = QDateTime::currentDateTime();
|
QDateTime startDateTime = QDateTime::currentDateTime();
|
||||||
|
@ -90,8 +89,7 @@ void MainWindow::addBeltWarnInfoToTextEdit(const QString &consoleInfo) {
|
||||||
// 2)
|
// 2)
|
||||||
// return;
|
// return;
|
||||||
|
|
||||||
QString consoleInfoResult =
|
QString consoleInfoResult = QStringLiteral("[%1]%2").arg(formattedTime).arg(consoleInfo);
|
||||||
QStringLiteral("[%1]%2").arg(formattedTime).arg(consoleInfo);
|
|
||||||
ui->textEdit_beltWarnInfo->append(consoleInfoResult);
|
ui->textEdit_beltWarnInfo->append(consoleInfoResult);
|
||||||
|
|
||||||
m_previousConsleInfoDateTime = QDateTime::currentDateTime();
|
m_previousConsleInfoDateTime = QDateTime::currentDateTime();
|
||||||
|
@ -99,7 +97,8 @@ void MainWindow::addBeltWarnInfoToTextEdit(const QString &consoleInfo) {
|
||||||
|
|
||||||
void MainWindow::on_pushButton_close_clicked() { this->close(); }
|
void MainWindow::on_pushButton_close_clicked() { this->close(); }
|
||||||
|
|
||||||
void MainWindow::on_pushButton_max_clicked() {
|
void MainWindow::on_pushButton_max_clicked()
|
||||||
|
{
|
||||||
if (isFullScreen()) {
|
if (isFullScreen()) {
|
||||||
this->showMaximized();
|
this->showMaximized();
|
||||||
} else {
|
} else {
|
||||||
|
@ -109,9 +108,10 @@ void MainWindow::on_pushButton_max_clicked() {
|
||||||
|
|
||||||
void MainWindow::on_pushButton_min_clicked() { this->showMinimized(); }
|
void MainWindow::on_pushButton_min_clicked() { this->showMinimized(); }
|
||||||
|
|
||||||
void MainWindow::calendarLoopPlay() {
|
void MainWindow::calendarLoopPlay()
|
||||||
|
{
|
||||||
ui->label_calendar->clear();
|
ui->label_calendar->clear();
|
||||||
QTimer *timer_calendar = new QTimer(this);
|
QTimer* timer_calendar = new QTimer(this);
|
||||||
connect(timer_calendar, &QTimer::timeout, this, [this]() {
|
connect(timer_calendar, &QTimer::timeout, this, [this]() {
|
||||||
QDateTime time = QDateTime::currentDateTime();
|
QDateTime time = QDateTime::currentDateTime();
|
||||||
QString str = time.toString("yyyy-MM-dd hh:mm:ss dddd");
|
QString str = time.toString("yyyy-MM-dd hh:mm:ss dddd");
|
||||||
|
@ -120,7 +120,8 @@ void MainWindow::calendarLoopPlay() {
|
||||||
timer_calendar->start(1000); //每一秒溢出一次进入槽函数
|
timer_calendar->start(1000); //每一秒溢出一次进入槽函数
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::createSystemINI() {
|
void MainWindow::createSystemINI()
|
||||||
|
{
|
||||||
// 写入数据到INI文件
|
// 写入数据到INI文件
|
||||||
// 判断并设置 "system/name"
|
// 判断并设置 "system/name"
|
||||||
if (!m_systemSetting->contains("system/name")) {
|
if (!m_systemSetting->contains("system/name")) {
|
||||||
|
@ -146,9 +147,15 @@ void MainWindow::createSystemINI() {
|
||||||
if (!m_systemSetting->contains("camera/rtsp")) {
|
if (!m_systemSetting->contains("camera/rtsp")) {
|
||||||
m_systemSetting->setValue("camera/rtsp", 3000);
|
m_systemSetting->setValue("camera/rtsp", 3000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 判断并设置"system/different"
|
||||||
|
if (!m_systemSetting->contains("system/different")) {
|
||||||
|
m_systemSetting->setValue("system/different", 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::setSystemTitle() {
|
void MainWindow::setSystemTitle()
|
||||||
|
{
|
||||||
QString titleName = m_systemSetting->value("system/name").toString();
|
QString titleName = m_systemSetting->value("system/name").toString();
|
||||||
if (!titleName.isEmpty()) {
|
if (!titleName.isEmpty()) {
|
||||||
ui->label_title->clear();
|
ui->label_title->clear();
|
||||||
|
@ -156,18 +163,19 @@ void MainWindow::setSystemTitle() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::setBeltWarnInfoTextEditStyle() {
|
void MainWindow::setBeltWarnInfoTextEditStyle()
|
||||||
|
{
|
||||||
ui->textEdit_beltWarnInfo->document()->setMaximumBlockCount(100);
|
ui->textEdit_beltWarnInfo->document()->setMaximumBlockCount(100);
|
||||||
ui->textEdit_beltWarnInfo->setReadOnly(true);
|
ui->textEdit_beltWarnInfo->setReadOnly(true);
|
||||||
ui->textEdit_beltWarnInfo->setTextInteractionFlags(Qt::NoTextInteraction);
|
ui->textEdit_beltWarnInfo->setTextInteractionFlags(Qt::NoTextInteraction);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::addcoalDistributChart() {
|
void MainWindow::addcoalDistributChart()
|
||||||
|
{
|
||||||
// addBeltWarnInfoToTextEdit("添加煤流分布窗口成功!");
|
// addBeltWarnInfoToTextEdit("添加煤流分布窗口成功!");
|
||||||
ui->textEdit_beltWarnInfo->append("添加煤流分布窗口成功!");
|
ui->textEdit_beltWarnInfo->append("添加煤流分布窗口成功!");
|
||||||
|
|
||||||
CoalDistributBarChartWidget *coalDistributBarChartWidget =
|
CoalDistributBarChartWidget* coalDistributBarChartWidget = new CoalDistributBarChartWidget(this);
|
||||||
new CoalDistributBarChartWidget(this);
|
|
||||||
|
|
||||||
// 检查布局是否已设置
|
// 检查布局是否已设置
|
||||||
if (!ui->widget_coalDistributChart->layout()) {
|
if (!ui->widget_coalDistributChart->layout()) {
|
||||||
|
@ -178,40 +186,47 @@ void MainWindow::addcoalDistributChart() {
|
||||||
coalDistributBarChartWidget);
|
coalDistributBarChartWidget);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::addbeltSpeedChat() {
|
void MainWindow::addbeltSpeedChat()
|
||||||
ui->textEdit_beltWarnInfo->append("添加皮带机速度曲线窗口成功!");
|
{
|
||||||
BeltSpeedLineWidget *beltSpeedLineWidget = new BeltSpeedLineWidget(this);
|
// ui->textEdit_beltWarnInfo->append("添加皮带机速度曲线窗口成功!");
|
||||||
// 检查布局是否已设置
|
// BeltSpeedLineWidget *beltSpeedLineWidget = new BeltSpeedLineWidget(this);
|
||||||
if (!ui->widget_beltSpeedChart->layout()) {
|
// // 检查布局是否已设置
|
||||||
ui->widget_beltSpeedChart->setLayout(new QVBoxLayout);
|
// if (!ui->widget_beltSpeedChart->layout()) {
|
||||||
}
|
// ui->widget_beltSpeedChart->setLayout(new QVBoxLayout);
|
||||||
beltSpeedLineWidget->setContentsMargins(0, 0, 0, 0);
|
// }
|
||||||
ui->widget_beltSpeedChart->layout()->addWidget(beltSpeedLineWidget);
|
// beltSpeedLineWidget->setContentsMargins(0, 0, 0, 0);
|
||||||
|
// ui->widget_beltSpeedChart->layout()->addWidget(beltSpeedLineWidget);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::addCoalStatisticsChart() {
|
void MainWindow::addCoalStatisticsChart()
|
||||||
ui->textEdit_beltWarnInfo->append("添加煤量统计窗口成功!");
|
{
|
||||||
CoalStatisticsChartWidget *coalStatisticsChartWidget =
|
// ui->textEdit_beltWarnInfo->append("添加煤量统计窗口成功!");
|
||||||
new CoalStatisticsChartWidget(this);
|
// CoalStatisticsChartWidget* coalStatisticsChartWidget = new CoalStatisticsChartWidget(this);
|
||||||
// 检查布局是否已设置
|
// // 检查布局是否已设置
|
||||||
if (!ui->widget_beltSpeedChart->layout()) {
|
// if (!ui->widget_coalStatisticsChart->layout()) {
|
||||||
ui->widget_beltSpeedChart->setLayout(new QVBoxLayout);
|
// ui->widget_coalStatisticsChart->setLayout(new QVBoxLayout);
|
||||||
}
|
// }
|
||||||
coalStatisticsChartWidget->setContentsMargins(0, 0, 0, 0);
|
// coalStatisticsChartWidget->setContentsMargins(0, 0, 0, 0);
|
||||||
ui->widget_coalStatisticsChart->layout()->addWidget(
|
// ui->widget_coalStatisticsChart->layout()->addWidget(coalStatisticsChartWidget);
|
||||||
coalStatisticsChartWidget);
|
|
||||||
|
|
||||||
connect(coalStatisticsChartWidget,
|
// connect(coalStatisticsChartWidget, &CoalStatisticsChartWidget::querySuccessInfo, this, &MainWindow::addBeltWarnInfoToTextEdit);
|
||||||
&CoalStatisticsChartWidget::querySuccessInfo, this,
|
|
||||||
&MainWindow::addBeltWarnInfoToTextEdit);
|
CoalStaticWidget* coalStaticWidget = new CoalStaticWidget(this);
|
||||||
|
|
||||||
|
// 检查布局是否已设置
|
||||||
|
if (!ui->widget_coalStatis->layout()) {
|
||||||
|
ui->widget_coalStatis->setLayout(new QVBoxLayout);
|
||||||
|
}
|
||||||
|
coalStaticWidget->setContentsMargins(0, 0, 0, 0);
|
||||||
|
ui->widget_coalStatis->layout()->addWidget(coalStaticWidget);
|
||||||
|
|
||||||
|
connect(coalStaticWidget, &CoalStaticWidget::querySuccessInfo, this, &MainWindow::addBeltWarnInfoToTextEdit);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::addCoalBeltVideo() {
|
void MainWindow::addCoalBeltVideo()
|
||||||
// QString url =
|
{
|
||||||
// "https://stream7.iqilu.com/10339/upload_transcode/202002/18/"
|
// QString url = "https://stream7.iqilu.com/10339/upload_transcode/202002/18/20200218114723HDu3hhxqIT.mp4";
|
||||||
// "20200218114723HDu3hhxqIT.mp4";
|
// QString url = "rtsp://admin:1234qwer@192.168.80.82:554/Streaming/Channels/101";
|
||||||
// QString url =
|
|
||||||
// "rtsp://admin:1234qwer@192.168.80.82:554/Streaming/Channels/101";
|
|
||||||
QString url = m_systemSetting->value("camera/rtsp").toString();
|
QString url = m_systemSetting->value("camera/rtsp").toString();
|
||||||
ui->widget_beltVideo->setUrl(url);
|
ui->widget_beltVideo->setUrl(url);
|
||||||
ui->widget_beltVideo->open();
|
ui->widget_beltVideo->open();
|
||||||
|
|
2763
mainwindow.ui
2763
mainwindow.ui
File diff suppressed because it is too large
Load Diff
|
@ -65,5 +65,6 @@
|
||||||
<file>component/ZDateEdit/Resources/DTPrev.png</file>
|
<file>component/ZDateEdit/Resources/DTPrev.png</file>
|
||||||
<file>component/ZDateEdit/Resources/popupButton.png</file>
|
<file>component/ZDateEdit/Resources/popupButton.png</file>
|
||||||
<file>component/ZDateEdit/Resources/popupButton2.png</file>
|
<file>component/ZDateEdit/Resources/popupButton2.png</file>
|
||||||
|
<file>Resource/image/beltCamera.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|
|
@ -79,18 +79,21 @@ void CoalDistributBarChartWidget::initializeChart()
|
||||||
axisX->setRange(1, 300);
|
axisX->setRange(1, 300);
|
||||||
axisX->setTickCount(10);
|
axisX->setTickCount(10);
|
||||||
axisX->setLabelFormat("%d");
|
axisX->setLabelFormat("%d");
|
||||||
axisX->setLinePen(QPen(Qt::gray));
|
axisX->setLinePen(QPen(QColor(40, 46, 48)));
|
||||||
axisX->setLabelsColor(Qt::gray);
|
axisX->setLabelsColor(QColor(151, 151, 151));
|
||||||
|
|
||||||
axisX->setMinorTickCount(0); // 隐藏X轴刻度线
|
axisX->setMinorTickCount(0); // 隐藏X轴刻度线
|
||||||
|
axisX->setGridLineVisible(false);
|
||||||
m_chart->addAxis(axisX, Qt::AlignBottom);
|
m_chart->addAxis(axisX, Qt::AlignBottom);
|
||||||
m_series->attachAxis(axisX);
|
m_series->attachAxis(axisX);
|
||||||
|
|
||||||
// 设置Y轴为百分比
|
// 设置Y轴为百分比
|
||||||
QValueAxis* axisY = new QValueAxis;
|
QValueAxis* axisY = new QValueAxis;
|
||||||
axisY->setTitleText("占比(%)");
|
axisY->setTitleText("占比(%)");
|
||||||
axisY->setTitleBrush(QBrush(Qt::gray));
|
axisY->setTitleBrush(QBrush(QColor(151, 151, 151)));
|
||||||
axisY->setLinePen(QPen(Qt::gray));
|
axisY->setLinePen(QPen(QColor(40, 46, 48)));
|
||||||
axisY->setLabelsColor(Qt::gray); // 设置标签字体颜色为灰色
|
axisY->setLabelsColor(QColor(151, 151, 151)); // 设置标签字体颜色为灰色
|
||||||
|
axisY->setGridLineColor(QColor(40, 46, 48));
|
||||||
axisY->setRange(0, 100);
|
axisY->setRange(0, 100);
|
||||||
axisY->setTitleFont(QFont("Arial", 10)); // 设置标题字体
|
axisY->setTitleFont(QFont("Arial", 10)); // 设置标题字体
|
||||||
axisY->setTitleVisible(true); // 确保标题可见
|
axisY->setTitleVisible(true); // 确保标题可见
|
||||||
|
|
|
@ -0,0 +1,297 @@
|
||||||
|
#include "coalstaticwidget.h"
|
||||||
|
#include "ui_coalstaticwidget.h"
|
||||||
|
|
||||||
|
#include <QHttpPart>
|
||||||
|
#include <QJsonDocument>
|
||||||
|
#include <QJsonObject>
|
||||||
|
#include <QNetworkAccessManager>
|
||||||
|
#include <QNetworkReply>
|
||||||
|
#include <QNetworkRequest>
|
||||||
|
#include <QUrl>
|
||||||
|
#include <QUrlQuery>
|
||||||
|
|
||||||
|
CoalStaticWidget::CoalStaticWidget(QWidget* parent)
|
||||||
|
: QWidget(parent)
|
||||||
|
, ui(new Ui::CoalStaticWidget)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
m_systemSetting = new QSettings("system.ini", QSettings::IniFormat);
|
||||||
|
|
||||||
|
ui->dateTimeEdit_startTime->setDateTime(QDateTime::currentDateTime().addSecs(-8 * 3600));
|
||||||
|
|
||||||
|
initCoalStatisticsBarChart();
|
||||||
|
}
|
||||||
|
|
||||||
|
CoalStaticWidget::~CoalStaticWidget()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CoalStaticWidget::initCoalStatisticsBarChart()
|
||||||
|
{
|
||||||
|
// 创建图表
|
||||||
|
m_chart = new QChart();
|
||||||
|
m_chart->setBackgroundBrush(Qt::transparent);
|
||||||
|
m_chart->setMargins(QMargins(0, 0, 0, 0));
|
||||||
|
m_chart->legend()->hide();
|
||||||
|
|
||||||
|
// 创建图表视图并设置
|
||||||
|
m_chartView = new QChartView(m_chart);
|
||||||
|
m_chartView->setBackgroundBrush(Qt::transparent);
|
||||||
|
m_chartView->setStyleSheet("background: transparent;");
|
||||||
|
m_chartView->setRenderHint(QPainter::Antialiasing);
|
||||||
|
m_chartView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||||
|
|
||||||
|
// 创建柱状图
|
||||||
|
m_series = new QBarSeries();
|
||||||
|
m_chart->addSeries(m_series);
|
||||||
|
|
||||||
|
// 设置X轴为时间
|
||||||
|
m_axisX = new QBarCategoryAxis();
|
||||||
|
// m_axisX->setFormat("yyyy/MM/d H"); // 设置日期时间格式
|
||||||
|
// m_axisX->setTitleText("时间");
|
||||||
|
m_axisX->setTitleBrush(QBrush(Qt::gray));
|
||||||
|
m_axisX->setLinePen(QPen(Qt::gray));
|
||||||
|
m_axisX->setLabelsColor(Qt::gray);
|
||||||
|
m_axisX->setGridLineVisible(false);
|
||||||
|
|
||||||
|
// 获取当前时间并设置时间范围为最近六个小时
|
||||||
|
// QDateTime currentTime = QDateTime::currentDateTime();
|
||||||
|
// QDateTime startTime = currentTime.addSecs(-6 * 3600); // 当前时间减去六个小时
|
||||||
|
// m_axisX->setLabelsAngle(45);
|
||||||
|
// m_axisX->setRange(startTime, currentTime); // 设置X轴时间范围
|
||||||
|
|
||||||
|
QDateTime currentTime = QDateTime::currentDateTime();
|
||||||
|
QList<QString> timeList = getLastSixFullHours(currentTime);
|
||||||
|
m_axisX->append(timeList);
|
||||||
|
|
||||||
|
m_chart->addAxis(m_axisX, Qt::AlignBottom);
|
||||||
|
m_series->attachAxis(m_axisX);
|
||||||
|
|
||||||
|
// 设置Y轴为百分比
|
||||||
|
m_axisY = new QValueAxis;
|
||||||
|
m_axisY->setTitleText("吨");
|
||||||
|
m_axisY->setTitleBrush(QBrush(Qt::gray));
|
||||||
|
m_axisY->setLinePen(QPen(Qt::gray));
|
||||||
|
m_axisY->setLabelsColor(Qt::gray);
|
||||||
|
m_axisY->setRange(0, 100);
|
||||||
|
m_axisY->setTitleFont(QFont("Arial", 10));
|
||||||
|
m_axisY->setTitleVisible(true);
|
||||||
|
|
||||||
|
m_chart->addAxis(m_axisY, Qt::AlignLeft);
|
||||||
|
m_series->attachAxis(m_axisY);
|
||||||
|
|
||||||
|
// 获取 widget_coalChart 的布局
|
||||||
|
QVBoxLayout* layout = static_cast<QVBoxLayout*>(ui->widget_coalStatisticsChart->layout());
|
||||||
|
if (!layout) {
|
||||||
|
// 如果没有布局,创建一个新的布局并设置
|
||||||
|
layout = new QVBoxLayout(ui->widget_coalStatisticsChart);
|
||||||
|
ui->widget_coalStatisticsChart->setLayout(layout);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置布局参数
|
||||||
|
layout->setContentsMargins(0, 0, 0, 0);
|
||||||
|
layout->setSpacing(0);
|
||||||
|
|
||||||
|
// 确保视图只添加一次
|
||||||
|
if (!layout->indexOf(m_chartView) != -1) {
|
||||||
|
layout->addWidget(m_chartView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QList<QString> CoalStaticWidget::getLastSixFullHours(const QDateTime& currentTime)
|
||||||
|
{
|
||||||
|
// 将当前时间设置为整点
|
||||||
|
QDateTime roundedTime = currentTime;
|
||||||
|
roundedTime.setTime(QTime(currentTime.time().hour(), 0)); // 设置时间到整点
|
||||||
|
|
||||||
|
bool insertTime = false; // 用于控制每隔一个插入时间,其他插入0
|
||||||
|
|
||||||
|
// 计算距当前整点数的前六个小时
|
||||||
|
QList<QString> timeList;
|
||||||
|
for (int i = 8; i >= 1; --i) {
|
||||||
|
QDateTime prevHour = roundedTime.addSecs(-i * 3600); // 向前推算每个整点
|
||||||
|
timeList.append(prevHour.toString("HH:mm"));
|
||||||
|
}
|
||||||
|
|
||||||
|
return timeList;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CoalStaticWidget::updateCoalStatisticsChart(const QMap<QString, double>& volumeDataMap)
|
||||||
|
{
|
||||||
|
|
||||||
|
// 清除旧数据
|
||||||
|
m_series->clear();
|
||||||
|
|
||||||
|
// 创建新的数据集
|
||||||
|
QBarSet* set = new QBarSet("煤量");
|
||||||
|
|
||||||
|
// 用于存储时间标签
|
||||||
|
QList<QString> categories;
|
||||||
|
|
||||||
|
// 将字符串格式的时间转换为 QDateTime,并准备时间标签
|
||||||
|
for (auto it = volumeDataMap.begin(); it != volumeDataMap.end(); ++it) {
|
||||||
|
|
||||||
|
// 根据选择的时间单位,格式化时间标签
|
||||||
|
QString label;
|
||||||
|
if (ui->comboBox_unit->currentText() == QStringLiteral("时")) {
|
||||||
|
QDateTime time = QDateTime::fromString(it.key(), "yyyy-MM-dd HH");
|
||||||
|
label = time.toString("H");
|
||||||
|
} else if (ui->comboBox_unit->currentText() == QStringLiteral("日")) {
|
||||||
|
QDateTime time = QDateTime::fromString(it.key(), "yyyy-MM-dd");
|
||||||
|
label = time.toString("dd"); // 使用 'dd' 来格式化日期
|
||||||
|
} else if (ui->comboBox_unit->currentText() == QStringLiteral("月")) {
|
||||||
|
QDateTime time = QDateTime::fromString(it.key(), "yyyy-MM");
|
||||||
|
label = time.toString("MM"); // 使用 'MM' 来格式化月份
|
||||||
|
} else if (ui->comboBox_unit->currentText() == QStringLiteral("年")) {
|
||||||
|
QDateTime time = QDateTime::fromString(it.key(), "yyyy");
|
||||||
|
label = time.toString("yyyy"); // 使用 'yyyy' 来格式化年份
|
||||||
|
}
|
||||||
|
|
||||||
|
*set << it.value(); // 将数据量加入到数据集
|
||||||
|
|
||||||
|
emit querySuccessInfo(QString::number(it.value()));
|
||||||
|
|
||||||
|
categories.append(label); // 将时间标签添加到列表
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将数据集添加到 series
|
||||||
|
m_series->append(set);
|
||||||
|
|
||||||
|
// 使用 QCategoryAxis 设置 X 轴为字符串格式的时间标签
|
||||||
|
m_axisX->clear(); // 清除之前的标签
|
||||||
|
m_axisX->append(categories); // 将新的时间标签添加到 X 轴
|
||||||
|
|
||||||
|
// 更新 Y 轴范围
|
||||||
|
double maxValue = *std::max_element(volumeDataMap.begin(), volumeDataMap.end());
|
||||||
|
m_axisY->setRange(0, maxValue + 10); // 设置为最大值并留出余量
|
||||||
|
}
|
||||||
|
|
||||||
|
void CoalStaticWidget::getCoalStatisInfoByHttpRequest(const QString& beginTime, const QString& endTime, const QString& statisticUnit)
|
||||||
|
{
|
||||||
|
// 使用类成员变量 QNetworkAccessManager
|
||||||
|
QNetworkAccessManager* manager = new QNetworkAccessManager(this);
|
||||||
|
QString coalStaticUrl = m_systemSetting->value("coalStaticInterface/url").toString();
|
||||||
|
|
||||||
|
// URL
|
||||||
|
QUrl url(coalStaticUrl);
|
||||||
|
QNetworkRequest request(url);
|
||||||
|
|
||||||
|
// Form data
|
||||||
|
QHttpMultiPart* multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
|
||||||
|
|
||||||
|
// begin_time 参数
|
||||||
|
QHttpPart beginTimePart;
|
||||||
|
beginTimePart.setHeader(QNetworkRequest::ContentDispositionHeader,
|
||||||
|
QVariant("form-data; name=\"begin_time\""));
|
||||||
|
beginTimePart.setBody(beginTime.toUtf8());
|
||||||
|
|
||||||
|
// end_time 参数
|
||||||
|
QHttpPart endTimePart;
|
||||||
|
endTimePart.setHeader(QNetworkRequest::ContentDispositionHeader,
|
||||||
|
QVariant("form-data; name=\"end_time\""));
|
||||||
|
endTimePart.setBody(endTime.toUtf8());
|
||||||
|
|
||||||
|
// 统计单位参数
|
||||||
|
QHttpPart statisticUnitPart;
|
||||||
|
statisticUnitPart.setHeader(QNetworkRequest::ContentDispositionHeader,
|
||||||
|
QVariant("form-data; name=\"statistic_unit\""));
|
||||||
|
statisticUnitPart.setBody(statisticUnit.toUtf8());
|
||||||
|
|
||||||
|
// 将表单字段附加到 multipart 请求体中
|
||||||
|
multiPart->append(beginTimePart);
|
||||||
|
multiPart->append(endTimePart);
|
||||||
|
multiPart->append(statisticUnitPart);
|
||||||
|
|
||||||
|
// 发送 POST 请求
|
||||||
|
QNetworkReply* reply = manager->post(request, multiPart);
|
||||||
|
|
||||||
|
// 连接信号和槽
|
||||||
|
QObject::connect(reply, &QNetworkReply::finished, [this, reply, multiPart]() {
|
||||||
|
if (reply->error() == QNetworkReply::NoError) {
|
||||||
|
// 处理成功的响应
|
||||||
|
QByteArray responseData = reply->readAll();
|
||||||
|
QJsonDocument jsonResponse = QJsonDocument::fromJson(responseData);
|
||||||
|
QJsonObject jsonObj = jsonResponse.object();
|
||||||
|
|
||||||
|
int code = jsonObj["code"].toInt();
|
||||||
|
QString message = jsonObj["message"].toString();
|
||||||
|
QJsonObject data = jsonObj["data"].toObject();
|
||||||
|
m_toalValue = data["total_volum"].toDouble();
|
||||||
|
QJsonObject statisticUnitVolum = data["statistic_unit_volum"].toObject();
|
||||||
|
|
||||||
|
int statisticUnitVolumSize = statisticUnitVolum.count();
|
||||||
|
QString statisticUnitVolumSizeString = "查询结果数" + QString::number(statisticUnitVolumSize);
|
||||||
|
emit querySuccessInfo(statisticUnitVolumSizeString);
|
||||||
|
|
||||||
|
QString totalVolumeString = "总吨数" + QString::number(m_toalValue);
|
||||||
|
emit querySuccessInfo(totalVolumeString);
|
||||||
|
|
||||||
|
ui->label_totalVolume->clear();
|
||||||
|
ui->label_totalVolume->setText(QString("煤量总计:%1吨").arg(m_toalValue * m_systemSetting->value("system/different").toDouble()));
|
||||||
|
|
||||||
|
m_volumeDataMap.clear();
|
||||||
|
|
||||||
|
// 计算整体需要减少的总量
|
||||||
|
double reduction = m_toalValue * m_systemSetting->value("system/different").toDouble(); // 减去50%
|
||||||
|
|
||||||
|
// 计算每个值应该减少的比例
|
||||||
|
// double currentReduction = 0;
|
||||||
|
|
||||||
|
// 遍历 statistic_unit_volum 中的键值对并存入 volumeDataMap
|
||||||
|
for (const QString& key : statisticUnitVolum.keys()) {
|
||||||
|
double value = statisticUnitVolum.value(key).toDouble();
|
||||||
|
|
||||||
|
// // 计算每个值所减少的比例
|
||||||
|
// double proportionalReduction = (value / m_toalValue) * reduction;
|
||||||
|
|
||||||
|
m_volumeDataMap.insert(key, value /*- proportionalReduction*/);
|
||||||
|
|
||||||
|
// currentReduction += proportionalReduction;
|
||||||
|
}
|
||||||
|
|
||||||
|
emit
|
||||||
|
|
||||||
|
// 更新查询的数据至图表
|
||||||
|
if (!m_volumeDataMap.isEmpty())
|
||||||
|
{
|
||||||
|
updateCoalStatisticsChart(m_volumeDataMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// 处理错误
|
||||||
|
QString errorString = reply->errorString();
|
||||||
|
|
||||||
|
emit querySuccessInfo(errorString);
|
||||||
|
qDebug() << "Error:" << errorString;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清理资源
|
||||||
|
reply->deleteLater();
|
||||||
|
multiPart->deleteLater();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void CoalStaticWidget::on_pushButton_clicked()
|
||||||
|
{
|
||||||
|
// 时间范围
|
||||||
|
QString beginTimeStr = ui->dateTimeEdit_startTime->text();
|
||||||
|
QString endTimeStr = ui->dateTimeEdit_endTime->text();
|
||||||
|
|
||||||
|
// 创建 QDateTime 对象
|
||||||
|
QDateTime beginTime = QDateTime::fromString(beginTimeStr, "yyyy/MM/d H:mm");
|
||||||
|
QDateTime endTime = QDateTime::fromString(endTimeStr, "yyyy/MM/d H:mm");
|
||||||
|
|
||||||
|
// 格式化为 "yyyy-MM-d H" 形式
|
||||||
|
QString formattedBeginTime = beginTime.toString("yyyy-MM-dd HH");
|
||||||
|
QString formattedEndTime = endTime.toString("yyyy-MM-dd HH");
|
||||||
|
|
||||||
|
// 统计单位
|
||||||
|
QString statisticUnit = ui->comboBox_unit->currentText();
|
||||||
|
|
||||||
|
emit querySuccessInfo("查询起始时间:" + formattedBeginTime);
|
||||||
|
emit querySuccessInfo("查询终止时间:" + formattedEndTime);
|
||||||
|
|
||||||
|
getCoalStatisInfoByHttpRequest(formattedBeginTime, formattedEndTime, statisticUnit);
|
||||||
|
}
|
|
@ -0,0 +1,76 @@
|
||||||
|
#ifndef COALSTATICWIDGET_H
|
||||||
|
#define COALSTATICWIDGET_H
|
||||||
|
|
||||||
|
#include <QSettings>
|
||||||
|
#include <QWidget>
|
||||||
|
#include <QtCharts>
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class CoalStaticWidget;
|
||||||
|
}
|
||||||
|
|
||||||
|
class CoalStaticWidget : public QWidget {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit CoalStaticWidget(QWidget* parent = nullptr);
|
||||||
|
~CoalStaticWidget();
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void querySuccessInfo(QString queryInfo);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void on_pushButton_clicked();
|
||||||
|
|
||||||
|
private:
|
||||||
|
/**
|
||||||
|
* @brief initCoalStatisticsBarChart 初始化煤量统计柱状图
|
||||||
|
*/
|
||||||
|
void initCoalStatisticsBarChart();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief getLastSixFullHours 计算前六个整点时间
|
||||||
|
* @param currentTime 当前时间
|
||||||
|
* @return 六个整点数
|
||||||
|
*/
|
||||||
|
QList<QString> getLastSixFullHours(const QDateTime& currentTime);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief updateCoalStatisticsChart 更新煤溜统计柱状图数据
|
||||||
|
* @param volumeDataMap 统计结果数据
|
||||||
|
*/
|
||||||
|
void updateCoalStatisticsChart(const QMap<QString, double>& volumeDataMap);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief getCoalStatisInfoByHttpRequest 通过Http请求获取煤量统计信息
|
||||||
|
* @param startTime 请求起始时间
|
||||||
|
* @param endTime 请求终止时间
|
||||||
|
* @param statisticUnit 统计单位
|
||||||
|
*/
|
||||||
|
void getCoalStatisInfoByHttpRequest(const QString& startTime, const QString& endTime, const QString& statisticUnit);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::CoalStaticWidget* ui;
|
||||||
|
|
||||||
|
// 柱状图标
|
||||||
|
QChart* m_chart;
|
||||||
|
QChartView* m_chartView;
|
||||||
|
QBarSeries* m_series;
|
||||||
|
// QDateTimeAxis* m_axisX;
|
||||||
|
QBarCategoryAxis* m_axisX;
|
||||||
|
QValueAxis* m_axisY;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief m_systemSetting 系统配置信息
|
||||||
|
*/
|
||||||
|
QSettings* m_systemSetting;
|
||||||
|
|
||||||
|
double m_toalValue = 0.0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief m_volumeDataMap 查询出煤量数据
|
||||||
|
*/
|
||||||
|
QMap<QString, double> m_volumeDataMap;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // COALSTATICWIDGET_H
|
|
@ -0,0 +1,334 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>CoalStaticWidget</class>
|
||||||
|
<widget class="QWidget" name="CoalStaticWidget">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>1059</width>
|
||||||
|
<height>386</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,1">
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_19">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>30</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>10</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>10</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_14">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget_coalStaticLogo" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>35</width>
|
||||||
|
<height>35</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">#widget_coalStaticLogo{
|
||||||
|
border-image: url(:/Resource/image/icon6.png);
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_9">
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QLabel{
|
||||||
|
color:white;
|
||||||
|
font: 12pt "黑体";
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>煤量统计</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>15</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="layoutDirection">
|
||||||
|
<enum>Qt::LeftToRight</enum>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QLabel{
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
font: 10pt "黑体";
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>开始时间</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="ZDateTimeEdit" name="dateTimeEdit_startTime">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>25</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QDateTimeEdit {
|
||||||
|
background-color: rgb(51, 52, 56);
|
||||||
|
color: white; /* 字体颜色 */
|
||||||
|
border: 1px solid rgb(180, 186, 188); /* 边框颜色和宽度 */
|
||||||
|
border-radius: 0px; /* 圆角 */
|
||||||
|
padding: 5px; /* 内边距 */
|
||||||
|
font-size: 14px; /* 字体大小 */
|
||||||
|
font-family: "Arial", sans-serif; /* 字体样式 */
|
||||||
|
}
|
||||||
|
|
||||||
|
QDateTimeEdit::up-button {
|
||||||
|
subcontrol-origin: padding;
|
||||||
|
subcontrol-position: top right;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDateTimeEdit::down-button {
|
||||||
|
subcontrol-origin: padding;
|
||||||
|
subcontrol-position: bottom right;
|
||||||
|
}
|
||||||
|
QDateTimeEdit::up-button, QDateTimeEdit::down-button {
|
||||||
|
width: 0px;
|
||||||
|
height: 0px;
|
||||||
|
}
|
||||||
|
</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QLabel{
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
font: 10pt "黑体";
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>结束时间</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="ZDateTimeEdit" name="dateTimeEdit_endTime">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>25</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QDateTimeEdit {
|
||||||
|
background-color: rgb(51, 52, 56);
|
||||||
|
color: white; /* 字体颜色 */
|
||||||
|
border: 1px solid rgb(180, 186, 188); /* 边框颜色和宽度 */
|
||||||
|
border-radius: 0px; /* 圆角 */
|
||||||
|
padding: 5px; /* 内边距 */
|
||||||
|
font-size: 14px; /* 字体大小 */
|
||||||
|
font-family: "Arial", sans-serif; /* 字体样式 */
|
||||||
|
}
|
||||||
|
|
||||||
|
QDateTimeEdit::up-button {
|
||||||
|
subcontrol-origin: padding;
|
||||||
|
subcontrol-position: top right;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDateTimeEdit::down-button {
|
||||||
|
subcontrol-origin: padding;
|
||||||
|
subcontrol-position: bottom right;
|
||||||
|
}
|
||||||
|
QDateTimeEdit::up-button, QDateTimeEdit::down-button {
|
||||||
|
width: 0px;
|
||||||
|
height: 0px;
|
||||||
|
}
|
||||||
|
</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QLabel{
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
font: 10pt "黑体";
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>统计单位</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="comboBox_unit">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>25</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QComboBox{
|
||||||
|
background-color: rgb(51, 52, 56);
|
||||||
|
color: white; /* 字体颜色 */
|
||||||
|
border: 1px solid rgb(180, 186, 188); /* 边框颜色和宽度 */
|
||||||
|
border-radius: 0px; /* 圆角 */
|
||||||
|
padding: 5px; /* 内边距 */
|
||||||
|
font-size: 14px; /* 字体大小 */
|
||||||
|
font-family: "Arial", sans-serif; /* 字体样式 */
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>时</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>日</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>月</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>年</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pushButton">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>50</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QPushButton{
|
||||||
|
border-image: url(:/Resource/image/labelunSelect.png);
|
||||||
|
color:white;
|
||||||
|
font-size: 14px;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
QPushButton:hover{
|
||||||
|
border-image:url(:/Resource/image/labelhover.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton:pressed{
|
||||||
|
border-image: url(:/Resource/image/labelSelect.png);
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>确定</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_totalVolume">
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QLabel{
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
font: 10pt "黑体";
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>煤量总计:000吨</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_9">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget_coalStatisticsChart" native="true">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>ZDateTimeEdit</class>
|
||||||
|
<extends>QDateTimeEdit</extends>
|
||||||
|
<header>component/ZDateEdit/zdatetimeedit.h</header>
|
||||||
|
</customwidget>
|
||||||
|
</customwidgets>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
|
@ -0,0 +1,6 @@
|
||||||
|
#include "coalstatisticsbarchartwidget.h"
|
||||||
|
|
||||||
|
CoalStatisticsBarChartWidget::CoalStatisticsBarChartWidget(QWidget* parent)
|
||||||
|
: QWidget(parent)
|
||||||
|
{
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
#ifndef COALSTATISTICSBARCHARTWIDGET_H
|
||||||
|
#define COALSTATISTICSBARCHARTWIDGET_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
class CoalStatisticsBarChartWidget : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit CoalStatisticsBarChartWidget(QWidget *parent = nullptr);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // COALSTATISTICSBARCHARTWIDGET_H
|
|
@ -225,10 +225,10 @@ void CoalStatisticsChartWidget::initCustomPlotCoalStatisticsBarChart()
|
||||||
|
|
||||||
// 设置 X 轴
|
// 设置 X 轴
|
||||||
m_customPlot->xAxis->setLabel("时间");
|
m_customPlot->xAxis->setLabel("时间");
|
||||||
m_customPlot->xAxis->setBasePen(QPen(Qt::gray)); // 设置轴线颜色
|
m_customPlot->xAxis->setBasePen(QPen(QColor(151, 151, 151))); // 设置轴线颜色
|
||||||
m_customPlot->xAxis->setTickPen(QPen(Qt::gray)); // 设置刻度线颜色
|
m_customPlot->xAxis->setTickPen(QPen(QColor(151, 151, 151))); // 设置刻度线颜色
|
||||||
m_customPlot->xAxis->setSubTickPen(QPen(Qt::gray)); // 设置子刻度线颜色
|
m_customPlot->xAxis->setSubTickPen(QPen(QColor(151, 151, 151))); // 设置子刻度线颜色
|
||||||
m_customPlot->xAxis->setTickLabelColor(Qt::gray); // 设置刻度标签颜色
|
m_customPlot->xAxis->setTickLabelColor(QColor(151, 151, 151)); // 设置刻度标签颜色
|
||||||
m_customPlot->xAxis->setTickLabelRotation(60); // 设置刻度标签的旋转角度,避免重叠
|
m_customPlot->xAxis->setTickLabelRotation(60); // 设置刻度标签的旋转角度,避免重叠
|
||||||
|
|
||||||
// 设置 Y 轴
|
// 设置 Y 轴
|
||||||
|
|
Loading…
Reference in New Issue