emsApplication/applications/EmsShower/customwidget.cpp

101 lines
3.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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);
}