Beispiel #1
0
void NHelpDialog::keyPressEvent(QKeyEvent *event)
{
    switch (event->key( ))
    {
    case Qt::Key_PageUp:
    case Qt::Key_PageDown:
        {
            QScrollBar *vbar = textScrollArea->verticalScrollBar( );
            if (vbar)
            {
                switch (event->key())
                {
                case Qt::Key_PageUp:
                    vbar->triggerAction(QAbstractSlider::SliderPageStepSub);
                    break;
                case Qt::Key_PageDown:
                    vbar->triggerAction(QAbstractSlider::SliderPageStepAdd);
                    break;
                }
            }
        }
        break;
    case Qt::Key_HomePage:
    case Qt::Key_Escape:
    case Qt::Key_Left:
    case Qt::Key_Help:
    case Qt::Key_Enter:
    case Qt::Key_MediaRecord:
    case Qt::Key_MediaPlay:
        this->close( );
        break;
    default:
        break;
    }
}
Beispiel #2
0
void MainWindow::keyPressEvent(QKeyEvent *e)
{
	if (e->key() == Qt::Key_Up)
	{
		// meh.. try faking it
		QScrollBar *vscroll = ui->graphicsView->verticalScrollBar();
		vscroll->triggerAction(QScrollBar::SliderSingleStepSub);
		
		// scrolls entire widget (not just viewport)
		//ui->graphicsView->scroll(0, 10);
		//scroll(0, 10);
		
		// not necessary: starts as accepted
		//e->accept();
		return;
	}
	else if (e->key() == Qt::Key_Down)
	{
		// meh.. try faking it
		QScrollBar *vscroll = ui->graphicsView->verticalScrollBar();
		vscroll->triggerAction(QScrollBar::SliderSingleStepAdd);
		
		// ok, this gives us both current scaling
		// and current translation (scrolled position)
		// of the view
		//QTransform vptr = ui->graphicsView->viewportTransform();
		// translate() seems to want absolute coordinates 
		// instead of relative delta??
		//ui->graphicsView->translate(0, 100);
		// scrolls entire widget (not just viewport)
		//ui->graphicsView->scroll(0, -10);
		//scroll(0, -10);
		// drawing isn't correct but at least affects actual image..
		//ui->graphicsView->viewport()->scroll(0, -10);
		return;
	}
	
	// pass to base-class
	QMainWindow::keyPressEvent(e);
}