1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ChenYLhuman-gamePlanTool

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
TreeWidgetEventFilter.cpp 1.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
箜栢 Отправлено 08.03.2020 16:56 b910461
#include "TreeWidgetEventFilter.h"
#include <QTreeWidgetItem>
#include <qevent.h>
#include <qdebug.h>
#include <QHeaderView>
#include <QMainWindow>
bool TreeWidgetEventFilter::eventFilter(QObject* watched, QEvent* event) {
QTreeWidget* widget = qobject_cast<QTreeWidget*>(watched);
static QPoint oldPoint;
static QPoint newPoint;
QEvent::Type eventType = event->type( );
if( eventType == QEvent::MouseButtonPress ) {
newPoint = QCursor::pos( );
// qDebug( ) << newPoint;
}
if( eventType == QEvent::MouseButtonRelease ) {
oldPoint = newPoint;
}
if( eventType == QEvent::MouseMove && oldPoint != newPoint ) {
// qDebug( ) << "产生了移动";
if( horScrollBar->isEnabled( ) ) {
if( oldPoint.x( ) > newPoint.x( ) ) {
int horScrollBarValue = horScrollBar->value( );
int newValue = horScrollBarValue + 2;
int maximum = horScrollBar->maximum( );
if( newValue >= maximum ) {
horScrollBar->setValue(newValue);
} else {
horScrollBar->setValue(maximum);
}
}
if( oldPoint.x( ) < newPoint.x( ) ) {
int horScrollBarValue = horScrollBar->value( );
int newValue = horScrollBarValue - 2;
int minimum = horScrollBar->minimum( );
if( newValue >= minimum ) {
horScrollBar->setValue(newValue);
} else {
horScrollBar->setValue(minimum);
}
}
}
oldPoint = newPoint;
}
return QObject::eventFilter(watched, event);
}
TreeWidgetEventFilter::TreeWidgetEventFilter(QTreeWidget* parent): QObject(parent) {
horScrollBar = parent->header( )->horizontalScrollBar( );
verScrollBar = parent->header( )->verticalScrollBar( );
parent->installEventFilter(this);
}
TreeWidgetEventFilter::~TreeWidgetEventFilter( ) {}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/ChenYLhuman-gamePlanTool.git
git@api.gitlife.ru:oschina-mirror/ChenYLhuman-gamePlanTool.git
oschina-mirror
ChenYLhuman-gamePlanTool
ChenYLhuman-gamePlanTool
master