qt/LedOK/wProgramManager/wEditProgram/wattrview.cpp

75 lines
2.1 KiB
C++
Raw Normal View History

2022-01-04 18:11:48 +08:00
#include "wattrview.h"
#include "ui_wattrview.h"
#include <wProgramManager/wEditProgram/wpageitem.h>
#include <wProgramManager/wEditProgram/wpageattr.h>
#include <wProgramManager/wEditProgram/wElement/eobject.h>
wAttrView::wAttrView(QWidget *parent) :
QTabWidget(parent),
ui(new Ui::wAttrView),
m_page(nullptr),
m_element(nullptr)
{
setAttribute(Qt::WA_DeleteOnClose);
ui->setupUi(this);
ui->wPage->setWidget(wEmpty());
ui->wElement->setWidget(wEmpty());
setTabText(0, tr("widget properties"));
setTabText(1, tr("Page properties"));
}
wAttrView::~wAttrView()
{
delete ui;
}
void wAttrView::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
QWidget* wAttrView::wEmpty()
{
QWidget *w = new QWidget();
w->setProperty("ssBackground", "dark");
w->setAttribute(Qt::WA_DeleteOnClose);
QVBoxLayout *playout = new QVBoxLayout();
playout->addStretch(1);
w->setLayout(playout);
return w;
}
//左边幻灯片选中后端响应函数
void wAttrView::onSlotPageSelected(wPageItem *page)
{
setCurrentIndex(1);
if(m_page != page)//如果先前的属性页不是当前选中的幻灯片切换ui的幻灯片属性页为新选中的属性
{
m_page = page;
if(nullptr != m_page) {
ui->wPage->setWidget(m_page->wAttr());
} else {
ui->wPage->setWidget(wEmpty());
}
}
}
void wAttrView::onSlotElementSelected(eObject *element)
{
if(m_element != element) {
m_element = element;
if(nullptr != m_element)//如果先前的媒体元素不是当前选中的媒体元素切换ui的媒体元素属性页为新选中的属性
{
setCurrentIndex(0);
ui->wElement->takeWidget()->close();
ui->wElement->setWidget(m_element->wAttr());//该widget赋值新的widget时会析构掉上一个widget
} else {
setCurrentIndex(1);
ui->wElement->setWidget(wEmpty());
}
}
}