Commit da10d978 authored by ym0408's avatar ym0408

7

parent b25211ae
This diff is collapsed.
#ifndef MULTIFUNCTIONDIALOG_H
#define MULTIFUNCTIONDIALOG_H
#include <QCalendarWidget>
#include<QDebug>
#include <QPainter>
#include <QDate>
#include <QDialog>
#include <QLineEdit>
#include<QMessageBox>
#include <QLabel> // 解决 QLabel 未声明的问题
#include <QPushButton> // 解决 QPushButton 不完整类型的问题
#include <QListWidget> // 用到了 QListWidget
......@@ -19,10 +24,39 @@ enum DialogType {
InspectionType, // 抽检项选择
TimeRangeType // 时间范围选择
};
// 仅在头文件中定义一次RangeCalendar
class RangeCalendar : public QCalendarWidget
{
Q_OBJECT
public:
explicit RangeCalendar(QWidget *parent = nullptr)
: QCalendarWidget(parent), m_startDate(QDate()), m_endDate(QDate()) {}
void setDateRange(const QDate &start, const QDate &end) {
m_startDate = start;
m_endDate = end;
updateCells();
}
protected:
void paintCell(QPainter *painter, const QRect &rect, const QDate &date) const override {
// 1. 先绘制区间背景(在默认样式之前)
if (m_startDate.isValid() && m_endDate.isValid()) {
if (date > m_startDate && date < m_endDate) {
painter->save();
painter->fillRect(rect.adjusted(1, 1, -1, -1), QColor(220, 240, 250));
painter->restore();
}
}
// 2. 再绘制默认样式(包含文字)
QCalendarWidget::paintCell(painter, rect, date);
}
private:
QDate m_startDate;
QDate m_endDate;
};
namespace Ui {
class MultiFunctionDialog;
}
class MultiFunctionDialog : public QDialog
{
......@@ -36,7 +70,7 @@ public:
QPair<QDate, QDate> getTimeRangeResult() const; // 用于:时间范围(返回日期对)
private slots:
// 事件过滤器:处理QListWidget的按键事件(实现循环滚动)
// bool eventFilter(QObject *watched, QEvent *event);
// bool eventFilter(QObject *watched, QEvent *event);
private:
// 根据类型创建对应的UI
void initWorkStationUI(); // 初始化工位选择UI
......@@ -48,10 +82,15 @@ private:
DialogType m_dialogType; // 当前弹窗类型
QListWidget *m_listWidget; // 列表控件(工位/设备用)
QButtonGroup *m_radioGroup; // 单选按钮组(抽检项用)
QDateEdit *m_startDateEdit; // 开始日期编辑框(时间用)
QDateEdit *m_endDateEdit; // 结束日期编辑框(时间用)
QDateEdit *m_startDateEdit=nullptr; // 开始日期编辑框(时间用)
QDateEdit *m_endDateEdit=nullptr; // 结束日期编辑框(时间用)
QLineEdit *m_deviceEdit; // 设备输入框成员(原代码可能遗漏)
QDate m_firstSelectDate;
QString m_deviceName; // 设备名称存储变量
// bool m_enableCycleScroll = false;
Ui::MultiFunctionDialog *ui;
// Ui::MultiFunctionDialog *ui;
};
......
USB.png

800 Bytes

USBconncet.png

612 Bytes

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.11.1, 2025-12-03T15:06:26. -->
<!-- Written by QtCreator 4.11.1, 2025-12-04T14:46:12. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
......
......@@ -7,9 +7,9 @@ carMachineDetectionWidget::carMachineDetectionWidget(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::carMachineDetectionWidget)
{
//setWindowFlags(windowFlags() & ~Qt::WindowFullscreenButtonHint);
//setMaximumSize(2000, 1200);
ui->setupUi(this);
ui->setupUi(this);
setWindowFlags(Qt::FramelessWindowHint);
//初始状态
// ui->widget_search->hide();
// ui->SoftControlwidget->hide();
......@@ -23,8 +23,6 @@ carMachineDetectionWidget::~carMachineDetectionWidget()
delete ui;
}
void carMachineDetectionWidget::on_pushButton_btnSoftwareControl_clicked()
{
ui->containerMain->hide();
......@@ -75,15 +73,37 @@ void carMachineDetectionWidget::on_pushButton_inspectionItemt_clicked()
void carMachineDetectionWidget::on_pushButton_chooseTime_clicked()
{
MultiFunctionDialog dialog(TimeRangeType, this);
if (dialog.exec() == QDialog::Accepted) {
QPair<QDate, QDate> timeRange = dialog.getTimeRangeResult();
QDate startDate = timeRange.first;
QDate endDate = timeRange.second;
if (startDate.isValid() && endDate.isValid()) {
QMessageBox::information(this, "选择结果",
QString("时间范围:%1 至 %2").arg(startDate.toString("yyyy-MM-dd")).arg(endDate.toString("yyyy-MM-dd")));
// 业务逻辑:更新时间范围设置
}
MultiFunctionDialog *dialog = new MultiFunctionDialog(TimeRangeType, this);
if (dialog->exec() == QDialog::Accepted) {
QPair<QDate, QDate> timeRange = dialog->getTimeRangeResult();
QDate startDate = timeRange.first;
QDate endDate = timeRange.second;
if (startDate.isValid() && endDate.isValid()) {
QMessageBox::information(this, "选择结果",
QString("时间范围:%1 至 %2")
.arg(startDate.toString("yyyy-MM-dd"))
.arg(endDate.toString("yyyy-MM-dd")));
}
}
delete dialog; // 手动销毁,避免内存泄漏
}
void carMachineDetectionWidget::onMinimizeButtonClicked()
{
}
void carMachineDetectionWidget::onCloseButtonClicked()
{
}
void carMachineDetectionWidget::on_pushButton_min_clicked()
{
this->showMinimized();
}
void carMachineDetectionWidget::on_pushButton_off_clicked()
{
this->close();
}
......@@ -2,7 +2,11 @@
#define CARMACHINEDETECTIONWIDGET_H
#include <QMainWindow>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QApplication>
#include <QLabel>
#include <QPushButton>
QT_BEGIN_NAMESPACE
namespace Ui { class carMachineDetectionWidget; }
QT_END_NAMESPACE
......@@ -30,7 +34,22 @@ private slots:
void on_pushButton_chooseTime_clicked();
void onMinimizeButtonClicked();
void onCloseButtonClicked();
void on_pushButton_min_clicked();
void on_pushButton_off_clicked();
private:
QLabel *m_titleLabel;
QLabel *m_stationLabel;
QLabel *m_usbStatusLabel;
QLabel *m_signalIconLabel;
QLabel *m_networkStatusLabel;
QPushButton *m_minimizeButton;
QPushButton *m_closeButton;
Ui::carMachineDetectionWidget *ui;
};
#endif // CARMACHINEDETECTIONWIDGET_H
This diff is collapsed.
min.png

259 Bytes

off.png

504 Bytes

......@@ -10,5 +10,11 @@
<file>carSeries.png</file>
<file>Default.png</file>
<file>choosetime.png</file>
<file>signal.png</file>
<file>signalconnect.png</file>
<file>USB.png</file>
<file>USBconncet.png</file>
<file>off.png</file>
<file>min.png</file>
</qresource>
</RCC>
signal.png

522 Bytes

Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment