Seite 1 von 1

QLabel wie link darstellen und wie QButton behandeln...

Verfasst: 28. Januar 2010 18:53
von suamikim
Hallo zusammen,

was ich möchte ist eigentlich ganz einfach:
Ich möchte ein QLabel anzeigen, welches eine blaue Schrift hat und unterstrichen ist (soweit kein Problem).
Weiters soll sich der Mauszeiger ändern, wenn ich darüberfahre (vom Pfeil zur Hand). Auch das funktioniert soweit.

Was nicht geht:

Mein Programm soll gewisse Dinge machen, wenn der Benutzer auf den "Link" klickt (keinen Explorer öffnen oder so...).

Mein Ansatz wäre jetzt einfach gewsesen, dass ich wie bei einem Button mittels connect das clicked-signal abfange und in meinen Slot leite.
Leider besitzt QLabel kein clicked-signal, so hab ich einfach mal das linkActivated-Signal benutzt und an meinen Slot gebunden:

Code: Alles auswählen

connect(lblEditQuestion, SIGNAL(linkActivated(QString)), this, SLOT(on_editQuestion(QString)));
on_editQuestion sieht so aus:

Code: Alles auswählen

void TestForm::on_editQuestion(QString qStr)
{
  qDebug() << qStr;
}
Leider wird das Signal anscheinend nicht gesendet, wenn ich mit der Maus auf das Label klicke. Jedenfalls wird mein Slot (on_editQuestion) niemals aufgerufen (im Debugger getestet)...

Hat jemand eine Idee, wie ich das von mir gewünschte realisieren kann und was man machen muss, damit linkActivated gesendet wird?

danke, mfg

Verfasst: 28. Januar 2010 19:02
von FaS
Via HTML definieren was ein Link sein soll, dann brauchst du auch die Formatierung und den Cursor nicht manuell ändern.

Verfasst: 29. Januar 2010 08:22
von suamikim
Hmmm, wo bzw. wie kann ich das definieren? Gibt es dazu vielleicht irgendwo eine etwas genauere Dokumentation?

danke

Verfasst: 29. Januar 2010 08:53
von suamikim
Hat sich soeben erledigt:

Der Qt Designer hat im Kontextmenü des QLabels einen Menüeintrag namens "Formatierbaren Text ändern...".
Dort drinnen kann man dann auf einfache Art und Weise Links eintragen. Hat man einen Link eingetragen übernimmt Qt die Formatierung von selbst und auch das LinkActivated-Signal wird geschickt (wie FaS ja bereits gesagt hat...).

Eine Frage bleibt aber noch offen:

Kann ich irgendwo einstellen, dass das QLabel nun grau dargestellt wird, wenn es disabled wird?
Momentan ist es so, dass QLabels mit einem Link immer gleich aussehen (egal ob enabled oder disabled)...

danke, mfg