TextEdit auf Rechtsklick Kontextmenü

Alles rund um die Programmierung mit Qt
Antworten
aminor
Beiträge: 9
Registriert: 18. Juli 2011 11:21

TextEdit auf Rechtsklick Kontextmenü

Beitrag von aminor »

Hey Leute,
wieder ein kleines Problem meinerseits. Hab hier schon einige Beiträge zu Kontextmenüs gelesen, allerdings
hatte ich nicht das Gefühl, dass diese mein Problem lösen oder erklären, da ich in C++ bzw. QT noch recht neu bin.
Also ich Programmiere zum Einstieg einen kleinen Texteditor der bestimmte Kriterien erfüllen muss, z.B unsere Firmeninterne
Driving Files strukturiert einlesen etc.
Nun möchte ich, dass sich im Textedit Widget, wenn man einen Text markiert und dann einen Rechtsklick ausführt, ein spezielles Menue(PopUp Menue)
öffnet. Ist das möglich?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: TextEdit auf Rechtsklick Kontextmenü

Beitrag von franzf »

Ist das möglich?
Definitiv: ja! Dein TextEditor hat über den textCursor() Zugriff auf den selectedText(). Entscheide dich für eine der Möglichkeiten, ein ContextMenu zu erstellen (Qt::ContextMenuPolicy), und fertig.
aminor
Beiträge: 9
Registriert: 18. Juli 2011 11:21

Re: TextEdit auf Rechtsklick Kontextmenü

Beitrag von aminor »

Okay und welches Signal benutze ich dann? Arbeite mit dem QT Creator.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: TextEdit auf Rechtsklick Kontextmenü

Beitrag von franzf »

Lies doch bitte die Doku:
http://doc.qt.nokia.com/latest/qt.html# ... olicy-enum
Da stehen die Möglichkeiten aufgelistet, samt Links zu den genauen Beschreibungen.
aminor
Beiträge: 9
Registriert: 18. Juli 2011 11:21

Re: TextEdit auf Rechtsklick Kontextmenü

Beitrag von aminor »

Es tut mir leid aber vieleicht steh ich gerade zu sehr auf dem Schlauch..

Was ich getan habe im Qt-Creator ist. Ich habe ein TextEdit Widget im Main Fenster erstellt. Dort habe ich dann per Rechtsklick-> Slot anzeigen -> customContextMenuRequested() angeklickt.. Jetzt habe ich schon sehr viele Sachen probiert.. ich hab wie du gesagt hast in dieser Methode versucht

Code: Alles auswählen

void editor::on_textEdit_customContextMenuRequested(const QPoint &pos)
{

ui->textEdit->setContextMenuPolicy(Qt::CustomContextMenu);
QMenu test;
test.addAction("Test");
test.popup(pos);
}
aber ich habe dieses System noch nicht ganz verstanden
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Re: TextEdit auf Rechtsklick Kontextmenü

Beitrag von archer »

Code: Alles auswählen

ui->textEdit->setContextMenuPolicy(Qt::CustomContextMenu);
Das kannst du nicht erst im Slot machen, sondern mußt es im Konstruktor nach setupUi() setzen.
Oder setze die Eigenschaft direkt im designer (Qt-Creator).
Diese Einstellung sagt ooch erst das das Signal customContextMenuRequested(..) gesendet werden soll.
aminor
Beiträge: 9
Registriert: 18. Juli 2011 11:21

Re: TextEdit auf Rechtsklick Kontextmenü

Beitrag von aminor »

Vielen Dank es hat funktioniert ^^ Stand echt was auf dem SChlauch!!
Antworten