Seite 1 von 1

TextEdit auf Rechtsklick Kontextmenü

Verfasst: 11. August 2011 08:43
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?

Re: TextEdit auf Rechtsklick Kontextmenü

Verfasst: 11. August 2011 08:52
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.

Re: TextEdit auf Rechtsklick Kontextmenü

Verfasst: 11. August 2011 09:09
von aminor
Okay und welches Signal benutze ich dann? Arbeite mit dem QT Creator.

Re: TextEdit auf Rechtsklick Kontextmenü

Verfasst: 11. August 2011 09:22
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.

Re: TextEdit auf Rechtsklick Kontextmenü

Verfasst: 11. August 2011 10:38
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

Re: TextEdit auf Rechtsklick Kontextmenü

Verfasst: 11. August 2011 11:13
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.

Re: TextEdit auf Rechtsklick Kontextmenü

Verfasst: 11. August 2011 11:25
von aminor
Vielen Dank es hat funktioniert ^^ Stand echt was auf dem SChlauch!!