emsApplication/applications/EmsShower/customwidget.cpp

101 lines
3.1 KiB
C++
Raw Normal View History

2025-03-05 13:37:23 +08:00
#include "customwidget.h"
#include <QVBoxLayout>
#include <QLabel>
#include <QTextEdit>
#include <QTableWidget>
#include <QHeaderView>
#include <QGraphicsDropShadowEffect>
CustomWidget::CustomWidget(QWidget *parent)
: QWidget{parent}
{
QWidget *centralWidget = new QWidget();
QGridLayout *mainLayout = new QGridLayout(this);
mainLayout->addWidget(centralWidget);
//实例阴影shadow
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
//设置阴影距离
shadow->setOffset(0, 0);
//设置阴影颜色
shadow->setColor(QColor(44,44,44));
//设置阴影圆角
shadow->setBlurRadius(16);
//给嵌套QDialog设置阴影
centralWidget->setGraphicsEffect(shadow);
QVBoxLayout *mainLayout1 = new QVBoxLayout(centralWidget);
mainLayout1->setSpacing(5); // 控件间间隔
// 上1/3QLabel
QWidget *topWidget = new QWidget();
mainLayout1->addWidget(topWidget, 1); // 拉伸因子为1
setupTopSection(topWidget);
// 中1/3两个垂直排列的QTextEdit
QWidget *midWidget = new QWidget();
mainLayout1->addWidget(midWidget, 1);
setupMidSection(midWidget);
// 下1/3表格
QWidget *bottomWidget = new QWidget();
mainLayout1->addWidget(bottomWidget, 1);
setupBottomSection(bottomWidget);
}
void CustomWidget::setupTopSection(QWidget *parent)
{
//实例阴影shadow
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
//设置阴影距离
shadow->setOffset(0, 0);
//设置阴影颜色
shadow->setColor(QColor(244,44,44));
//设置阴影圆角
shadow->setBlurRadius(16);
QLabel *label = new QLabel("顶部标签", parent);
label->setAlignment(Qt::AlignCenter);
label->setGraphicsEffect(shadow);
QVBoxLayout *layout = new QVBoxLayout(parent);
layout->addWidget(label);
}
void CustomWidget::setupMidSection(QWidget *parent)
{
//实例阴影shadow
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
//设置阴影距离
shadow->setOffset(0, 0);
//设置阴影颜色
shadow->setColor(QColor(244,44,44));
//设置阴影圆角
shadow->setBlurRadius(16);
QVBoxLayout *layout = new QVBoxLayout(parent);
QTextEdit *textEdit1 = new QTextEdit();
QTextEdit *textEdit2 = new QTextEdit();
layout->addWidget(textEdit1, 1); // 各占中间区域的一半高度
layout->addWidget(textEdit2, 1);
}
void CustomWidget::setupBottomSection(QWidget *parent)
{
//实例阴影shadow
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
//设置阴影距离
shadow->setOffset(0, 0);
//设置阴影颜色
shadow->setColor(QColor(244,44,44));
//设置阴影圆角
shadow->setBlurRadius(16);
QTableWidget *table = new QTableWidget(5, 2, parent); // 5行2列
table->setHorizontalHeaderLabels({"列1", "列2"});
table->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); // 列宽自适应
table->setGraphicsEffect(shadow);
QVBoxLayout *layout = new QVBoxLayout(parent);
layout->addWidget(table);
}