触摸滑动回弹动画异常问题
This commit is contained in:
parent
0f356b2d3c
commit
97bcd8257d
|
@ -29,6 +29,7 @@ ListView::ListView(QWidget *parent/*, int width, int height, int module*/):
|
||||||
this->h = 540;
|
this->h = 540;
|
||||||
this->module = 1;
|
this->module = 1;
|
||||||
initWidget();
|
initWidget();
|
||||||
|
setAttribute(Qt::WA_AcceptTouchEvents);
|
||||||
m_listmodel = new QStandardItemModel(this);
|
m_listmodel = new QStandardItemModel(this);
|
||||||
this->setModel(m_listmodel);
|
this->setModel(m_listmodel);
|
||||||
m_ukuiMenuInterface = new UkuiMenuInterface;
|
m_ukuiMenuInterface = new UkuiMenuInterface;
|
||||||
|
@ -95,6 +96,21 @@ void ListView::updateData(QVector<QStringList> data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ListView::event(QEvent *e)
|
||||||
|
{
|
||||||
|
switch (e->type()) {
|
||||||
|
case QEvent::TouchBegin:
|
||||||
|
m_scrollbarState = false;
|
||||||
|
break;
|
||||||
|
case QEvent::ChildRemoved:
|
||||||
|
m_scrollbarState = true;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return QListView::event(e);
|
||||||
|
}
|
||||||
|
|
||||||
void ListView::onClicked(QModelIndex index)
|
void ListView::onClicked(QModelIndex index)
|
||||||
{
|
{
|
||||||
QVariant var = m_listmodel->data(index, Qt::DisplayRole);
|
QVariant var = m_listmodel->data(index, Qt::DisplayRole);
|
||||||
|
@ -119,14 +135,18 @@ void ListView::onClicked(QModelIndex index)
|
||||||
void ListView::enterEvent(QEvent *e)
|
void ListView::enterEvent(QEvent *e)
|
||||||
{
|
{
|
||||||
Q_UNUSED(e);
|
Q_UNUSED(e);
|
||||||
|
if (m_scrollbarState) {
|
||||||
this->selectionModel()->clear();
|
this->selectionModel()->clear();
|
||||||
this->verticalScrollBar()->setVisible(true);
|
verticalScrollBar()->setVisible(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ListView::leaveEvent(QEvent *e)
|
void ListView::leaveEvent(QEvent *e)
|
||||||
{
|
{
|
||||||
Q_UNUSED(e);
|
Q_UNUSED(e);
|
||||||
this->verticalScrollBar()->setVisible(false);
|
if (m_scrollbarState) {
|
||||||
|
verticalScrollBar()->setVisible(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ListView::paintEvent(QPaintEvent *e)
|
void ListView::paintEvent(QPaintEvent *e)
|
||||||
|
|
|
@ -49,11 +49,12 @@ protected:
|
||||||
void leaveEvent(QEvent *e) Q_DECL_OVERRIDE;
|
void leaveEvent(QEvent *e) Q_DECL_OVERRIDE;
|
||||||
void paintEvent(QPaintEvent *e) override;
|
void paintEvent(QPaintEvent *e) override;
|
||||||
void keyPressEvent(QKeyEvent *e);
|
void keyPressEvent(QKeyEvent *e);
|
||||||
|
bool event(QEvent *e);
|
||||||
private:
|
private:
|
||||||
int w = 0;
|
int w = 0;
|
||||||
int h = 0;
|
int h = 0;
|
||||||
int m_preRowCount;
|
int m_preRowCount;
|
||||||
|
bool m_scrollbarState = true;
|
||||||
|
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
|
|
Loading…
Reference in New Issue