Important: Please read the Qt Code of Conduct -

Unsuccessfully post Event

  • Hi guys,

    I wanna post a QWheelEvent to QPlaintextEditor which is in a QVBoxLayout, but it does not work, I can not get that event. Welcome any ideas

    @ShowD::ShowD( QWidget *parent )
    : QDialog( parent )
    // Disables the "?" What's This button from the dialog.
    setWindowFlags( Qt::Dialog | Qt::WindowTitleHint );

    setFocusPolicy( Qt::StrongFocus );

    // this dialog is built from code (no FORM [*.ui] file).
    resize( 700, 600 );

    setWindowTitle( tr( "Legal" ) );

    myVerticalLayout = new QVBoxLayout( this );
    myVerticalLayout->setContentsMargins( 6, 6, 6, 6 );

    myTextEdit = new QPlainTextEdit( this );

    // set editor to read-only (no editing allowed)
    myTextEdit->setReadOnly( true );
    myTextEdit->setEnabled( true );

    // add the text edit to the layout
    myVerticalLayout->addWidget( myTextEdit );

    @ QPoint pos = QPoint( 10, 10 );
    QApplication::postEvent( myTextEdit, new QWheelEvent( pos, 120, Qt::NoButton, Qt::NoModifier ) );

  • Install event filter for myTextEdit, no need to post events. Read more on "QObject::installEventFilter":

  • thank you for advice, If I wanna postEvent, How should I do?

  • Sorry it seems I misunderstood your question. If you want to control the scroll bar position you can just do this:
    @QScrollBar *tQScrollBar = myTextEdit->verticalScrollBar();

    Or maybe your intention is something else..

  • thanks. but my basic idea is to simulate a wheel Event as soon as something happen. post QWheelEvent is one of my choose. I have no idea what is wrong with my code above? welcome any other talent.

Log in to reply