feat: 添加ElaWidgetTool库
This commit is contained in:
75
ElaWidgetTools/ElaTreeView.cpp
Normal file
75
ElaWidgetTools/ElaTreeView.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
#include "ElaTreeView.h"
|
||||
|
||||
#include "ElaScrollBar.h"
|
||||
#include "ElaTreeViewPrivate.h"
|
||||
#include "ElaTreeViewStyle.h"
|
||||
ElaTreeView::ElaTreeView(QWidget* parent)
|
||||
: QTreeView(parent), d_ptr(new ElaTreeViewPrivate())
|
||||
{
|
||||
Q_D(ElaTreeView);
|
||||
d->q_ptr = this;
|
||||
setObjectName("ElaTreeView");
|
||||
setStyleSheet(
|
||||
"#ElaTreeView{background-color:transparent;}"
|
||||
"QHeaderView{background-color:transparent;border:0px;}");
|
||||
|
||||
setAnimated(true);
|
||||
setMouseTracking(true);
|
||||
|
||||
ElaScrollBar* hScrollBar = new ElaScrollBar(this);
|
||||
hScrollBar->setIsAnimation(true);
|
||||
connect(hScrollBar, &ElaScrollBar::rangeAnimationFinished, this, [=]() {
|
||||
doItemsLayout();
|
||||
});
|
||||
setHorizontalScrollBar(hScrollBar);
|
||||
setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
|
||||
|
||||
ElaScrollBar* vScrollBar = new ElaScrollBar(this);
|
||||
vScrollBar->setIsAnimation(true);
|
||||
connect(vScrollBar, &ElaScrollBar::rangeAnimationFinished, this, [=]() {
|
||||
doItemsLayout();
|
||||
});
|
||||
setVerticalScrollBar(vScrollBar);
|
||||
setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
|
||||
|
||||
d->_treeViewStyle = new ElaTreeViewStyle(style());
|
||||
setStyle(d->_treeViewStyle);
|
||||
}
|
||||
|
||||
ElaTreeView::~ElaTreeView()
|
||||
{
|
||||
Q_D(ElaTreeView);
|
||||
delete d->_treeViewStyle;
|
||||
}
|
||||
|
||||
void ElaTreeView::setItemHeight(int itemHeight)
|
||||
{
|
||||
Q_D(ElaTreeView);
|
||||
if (itemHeight > 0)
|
||||
{
|
||||
d->_treeViewStyle->setItemHeight(itemHeight);
|
||||
doItemsLayout();
|
||||
}
|
||||
}
|
||||
|
||||
int ElaTreeView::getItemHeight() const
|
||||
{
|
||||
Q_D(const ElaTreeView);
|
||||
return d->_treeViewStyle->getItemHeight();
|
||||
}
|
||||
|
||||
void ElaTreeView::setHeaderMargin(int headerMargin)
|
||||
{
|
||||
Q_D(ElaTreeView);
|
||||
if (headerMargin >= 0)
|
||||
{
|
||||
d->_treeViewStyle->setHeaderMargin(headerMargin);
|
||||
doItemsLayout();
|
||||
}
|
||||
}
|
||||
|
||||
int ElaTreeView::getHeaderMargin() const
|
||||
{
|
||||
Q_D(const ElaTreeView);
|
||||
return d->_treeViewStyle->getHeaderMargin();
|
||||
}
|
||||
Reference in New Issue
Block a user