QTableView event Rechte Maustaste

Verschiedenes zu Qt
Antworten
MSchuster
Beiträge: 9
Registriert: 4. Februar 2010 19:32
Wohnort: Wien

QTableView event Rechte Maustaste

Beitrag von MSchuster »

Hy @ all,
Sry für die noob Frage aber ich glaub ich bin zu verwöhnt von Delphi.

Wenn ich in Delphi ein clicked event erstelle wird mir automatisch viel mitgeteilt, welches mir in Qt abgeht.

Code: Alles auswählen

void MainWindow::on_tableView_Person_clicked(QModelIndex index)
{
    
}
Möchte hier gerne wissen mit welcher Maustaste geklickt wurde.

Hab hier bissl rumgesucht und in mein schlaues Buch geschaut.
Muß mann nen Ereignisfilter implementieren um das Event abzufangen oder geht das irgendwie anders??
Thx für Antworten
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Wenn du ein Event willst dann nimm das QMouseEvent. Das was du hier hast ist ein Signal.
MSchuster
Beiträge: 9
Registriert: 4. Februar 2010 19:32
Wohnort: Wien

Beitrag von MSchuster »

Hab das ganze jetzt mit einem Eventfilter probiert aber irgendwie gehts noch immer nicht :oops:
Hab das ganze aus nen Buch aber leider bezieht sich das Buch kaum auf den Qt Designer. Ich will eigendlich nur ein Kontexmenü erstellen aber selbst dies scheint mir sehr umständlich zu sein gegenüber in Delphi^^

Code: Alles auswählen

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->tableView_Person->installEventFilter(this);

Code: Alles auswählen

bool MainWindow::eventFilter(QObject *object, QEvent *event)
{
    if (event->type() == QEvent::MouseButtonPress && object == ui->tableView_Person){
        QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
        if (mouseEvent->button()== Qt::RightButton){
            QMessageBox::information(0,"Hallo","Mouse");
            return true;
        }
    }
    return QWidget::eventFilter(object,event);
}
K.a. warum meine Messagebox nie ausgelöst wird kann mir wer nen Tipp geben pls.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Bei von QAbstractScrollView abgeleiteten Klassen ist der eventFilter auf den viewport() zu legen.
Antworten