Red de conocimiento informático - Problemas con los teléfonos móviles - Barra de desplazamiento personalizada QGraphicsView

Barra de desplazamiento personalizada QGraphicsView

Propósito: Escribí una subclase MyGraphicsView de QGraphicsView. El constructor agrega una escena. Cuando la escena agrega más elementos, la barra de desplazamiento aparecerá en MyGraphicsView porque debo responder a un método para operar los elementos que agregué cuando la barra de desplazamiento se desliza. Pero resulta que ese no es el caso.

¿Agregar un enlace al constructor de vistas en la función de ranura?

connect(this->horizontalScrollBar();, SIGNAL(sliderMoved(int)), this, SLOT(onMyScrollMoved( ) ));

// ¿Agregar un enlace al constructor de vistas en la función de ranura? onMyScrollMoved ¿Edítelo usted mismo?

Pero resulta que la función de ranura no responde al desplazamiento en la colina de la barra de desplazamiento usando el control deslizante. Anular QScrollBar, myQScrollBar

Anular la función virtual wheelEvent(QWheelEvent *event) en la clase myQScrollBar;

anular myQScrollBar::wheelEvent(QWheelEvent * event)

{

int aa = evento->orientación();

//if( Qt::Horizontal == evento->orientación() )//no agregar #include

if( Qt::Vertical == event->orientation() )//pero siempre es vertical aquí, no lo he investigado todavía

emit scrollWheel ();

evento->aceptar();

El QScrollBar::Horizontal == evento->orientación(); //incluye #incluye #incluye QScrollBar ::wheelEvent(event);

}

Finalmente, agregue

myQScrollBar* pScroll = new myQScrollBar();

? this->setHorizontalScrollBar(pScroll);

connect(pScroll, SIGNAL( sliderMoved(int)), this, SLOT(onMyScrollMoved());

connect(pScroll, SIGNAL( scrollWheel ()), this, SLOT(onMyScrollMoved());

Materiales de referencia

.com/article/p-wagtfmud-bvw.html

blogs. com/doubleeleven/articles/3753867.html.