Создаю объект представления QListView и делаю так чтобы эллементы размещались слева на право.
PreviewListFl = new QListView(this);
PreviewListFl->setFlow(QListView::LeftToRight);
BagmutA, а оно у тебя по горизонтали не помещается?
тогда тебе нужно:
либо создать наследника и переопределить метод wheelEvent(QWheelEvent *e),
либо повесить фильтр событий на событие wheelEvent(QWheelEvent *e) объекта PreviewListFl
Реализацию можно сделать по аналогии с
void QAbstractScrollArea::wheelEvent ( QWheelEvent * e )
void PreviewListFl::wheelEvent( QWheelEvent* e )
{
if( static_cast< QWheelEvent* >( e )->orientation() == Qt::Vertical )
QApplication::sendEvent( horizontalScrollBar(), e );
}
Вот так сваливается при достижении полосой прокрутки конца:\
bool MainWindow::eventFilter(QObject *obj, QEvent *ev)
{
if( obj == listView && ev->type() == QEvent::Wheel )
{
QWheelEvent *e = dynamic_cast<QWheelEvent*>(ev);
if( e->orientation() == Qt::Vertical )
{
QApplication::sendEvent((QObject*)listView->horizontalScrollBar(),new QWheelEvent(e->pos(),e->delta(),e->buttons(),e->modifiers(),Qt::Vertical));
ev->ignore();
return true;
}
}
return false;
}
bool MainWindow::eventFilter(QObject *obj, QEvent *ev)
{
if( obj == listView && ev->type() == QEvent::Wheel )
{
QWheelEvent *e = dynamic_cast<QWheelEvent*>(ev);
if( e->orientation() == Qt::Vertical )
{
QApplication::sendEvent((QObject*)listView->horizontalScrollBar(),new QWheelEvent(e->pos(),e->delta(),e->buttons(),e->modifiers(),Qt::Horizontal));
ev->ignore();
return true;
}
}
return false;
}
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)