feat: 添加ElaWidgetTool库
This commit is contained in:
59
ElaWidgetTools/ElaListView.cpp
Normal file
59
ElaWidgetTools/ElaListView.cpp
Normal file
@@ -0,0 +1,59 @@
|
||||
#include "ElaListView.h"
|
||||
|
||||
#include <QMouseEvent>
|
||||
|
||||
#include "ElaListViewPrivate.h"
|
||||
#include "ElaListViewStyle.h"
|
||||
#include "ElaScrollBar.h"
|
||||
ElaListView::ElaListView(QWidget* parent)
|
||||
: QListView(parent), d_ptr(new ElaListViewPrivate())
|
||||
{
|
||||
Q_D(ElaListView);
|
||||
d->q_ptr = this;
|
||||
setObjectName("ElaListView");
|
||||
setStyleSheet("#ElaListView{background-color:transparent;}");
|
||||
d->_listViewStyle = new ElaListViewStyle(style());
|
||||
setStyle(d->_listViewStyle);
|
||||
setMouseTracking(true);
|
||||
setVerticalScrollBar(new ElaScrollBar(this));
|
||||
setHorizontalScrollBar(new ElaScrollBar(this));
|
||||
this->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
|
||||
this->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
|
||||
setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
|
||||
setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
|
||||
}
|
||||
|
||||
ElaListView::~ElaListView()
|
||||
{
|
||||
Q_D(ElaListView);
|
||||
delete d->_listViewStyle;
|
||||
}
|
||||
|
||||
void ElaListView::setItemHeight(int itemHeight)
|
||||
{
|
||||
Q_D(ElaListView);
|
||||
if (itemHeight > 0)
|
||||
{
|
||||
d->_listViewStyle->setItemHeight(itemHeight);
|
||||
doItemsLayout();
|
||||
}
|
||||
}
|
||||
|
||||
int ElaListView::getItemHeight() const
|
||||
{
|
||||
Q_D(const ElaListView);
|
||||
return d->_listViewStyle->getItemHeight();
|
||||
}
|
||||
|
||||
void ElaListView::setIsTransparent(bool isTransparent)
|
||||
{
|
||||
Q_D(ElaListView);
|
||||
d->_listViewStyle->setIsTransparent(isTransparent);
|
||||
update();
|
||||
}
|
||||
|
||||
bool ElaListView::getIsTransparent() const
|
||||
{
|
||||
Q_D(const ElaListView);
|
||||
return d->_listViewStyle->getIsTransparent();
|
||||
}
|
||||
Reference in New Issue
Block a user