2013-07-30 19 views
28

Ich habe eine QLabel in meiner Anwendung, die Fehlermeldungen für den Benutzer anzeigt. Ich möchte den Text des Etiketts auswählbar machen, damit Benutzer die Fehlermeldung kopieren und einfügen können, wenn sie benötigt wird.QLabel-Text auswählbar machen?

Wenn ich jedoch die Maus zum Klicken und Ziehen über den Text verwende, passiert nichts - der Text ist nicht ausgewählt.

Wie kann ich den Text innerhalb einer QLabel mit der Maus auswählbar machen?

+0

Downvoter - zu erklären, warum dies eine schlechte Frage ist? Wie kann ich es verbessern? –

+0

Ich habe nicht abgelehnt, aber die Frage kann mit einem Minimum an Forschung beantwortet werden (zum Beispiel das Lesen der Dokumentation). Dies ist der bevorzugte Weg, anstatt Fragen vorzeitig zu stellen. Sie haben die Frage selbst nach einigen Minuten selbst beantwortet. – Skalli

+6

@Skalli - Sie müssen nicht mit dem Artikel SO vertraut sein [Es ist in Ordnung, Ihre eigenen Fragen zu stellen und zu beantworten] (http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer - deine eigenen Fragen /). Ich habe die Frage sofort beantwortet, indem ich die integrierte Funktion "Eigene Frage beantworten" verwendet habe. Ich habe die Forschung gezeigt, die ich in meiner Antwort gemacht habe, weil das Lesen der Dokumentation und eine schnelle Google-Suche mir tatsächlich * nicht * geholfen haben, und ich wollte anderen die Zeit in der Zukunft sparen. –

Antwort

47

-Code

Der Text eines QLabel kann wie so mit der Maus wählbar gemacht werden:

label->setTextInteractionFlags(Qt::TextSelectableByMouse); 

Dies ist in der QLabel documentation gefunden.

Sie können dieselbe Funktion verwenden, um Links über die Tastatur auswählbar zu machen, URL-Links zu markieren und den Text editierbar zu machen. Siehe Qt::TextInteractionFlag.

Designer

Suche nach textInteractionFlags unter dem QLabel Menü und das Kennzeichen TextSelectableByMouse.

1

Hier ist eine andere Methode ist, als Referenz ... Sie stattdessen eine QLineEdit Unterklasse schaffen könnte, gezwickt wie ein QLabel zu suchen und zu handeln, im Konstruktor:

setReadOnly(true); 
setFrame(false); 
QPalette palette = this->palette(); 
palette.setColor(QPalette::Base, palette.color(QPalette::Background)); 
setPalette(palette); 

Ich denke, die akzeptierte Antwort ist einfacher und vorzuziehen.

Verwandte Themen