Problem mit Contexmenu
Verfasst: 26. März 2010 00:12
Leider werde ich aus der Anleitung von Trolltech sowie aus meinem Buch QT 4.6 nicht schlau bzw es will nicht funktionieren
bei Trolltech steht:
Im Buch steht:
Kann mir wer sagen was nur korrekt ist (QMenu menu(this); oder QMenu *menu = new QMenu(this);
Ein weiteres Problem habe ich das ich wenn ich im Mainwindow irgendwo rechtsklicke sich das Programm aufhängt.
Hier mal mein Code:
Headerfile
cpp file
weiters will ich das Contexmenu nur in nen QTableView aktivieren welches ich aber mit dem QT-Creator erstellt habe. In den Büchern bzw. Anleitungen wird es aber immer nur so erklärt wenn man die Komponenten per Code erstellt. Wie macht man das wenn man den Creator verwendet??
Sind viele Fragen aber bei Learning by doing kommt das schon mal vor
Thx für Antworten
bei Trolltech steht:
Code: Alles auswählen
void MainWindow::contextMenuEvent(QContextMenuEvent *event)
{
QMenu menu(this);
menu.addAction(showAdresse);
menu.exec(event->globalPos());
}Code: Alles auswählen
void MainWindow::contextMenuEvent(QContextMenuEvent *event)
{
QMenu *menu = new QMenu(this);
menu->addAction(showAdresse);
menu->exec(event->globalPos());
}Ein weiteres Problem habe ich das ich wenn ich im Mainwindow irgendwo rechtsklicke sich das Programm aufhängt.
Hier mal mein Code:
Headerfile
Code: Alles auswählen
protected:
void changeEvent(QEvent *e);
bool eventFilter(QObject *object, QEvent *event);
void contextMenuEvent(QContextMenuEvent *event);
private:
Ui::MainWindow *ui;
void createActions();
QAction *showAdresse;
private slots:
void zeigeAdresse();Code: Alles auswählen
void MainWindow::contextMenuEvent(QContextMenuEvent *event)
{
QMenu *menu = new QMenu(this);
menu->addAction(showAdresse);
// menu->addAction(showVertraege);
// menu->addAction(showSchaden);
menu->exec(event->globalPos());
}
void MainWindow::zeigeAdresse()
{
QMessageBox::information(0,"Title..","zeige Adresse");
}
void MainWindow::createActions() //ContexMenu Person
{
QAction *showAdresse = new QAction(this);
showAdresse->setStatusTip("Zeigt alle Adressen an....");
connect(showAdresse, SIGNAL(triggered()),this,SLOT(zeigeAdresse()));
}Sind viele Fragen aber bei Learning by doing kommt das schon mal vor
Thx für Antworten