QLabel wie link darstellen und wie QButton behandeln...

Alles rund um die Programmierung mit Qt
Antworten
suamikim
Beiträge: 59
Registriert: 1. November 2009 15:58

QLabel wie link darstellen und wie QButton behandeln...

Beitrag 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
FaS
Beiträge: 184
Registriert: 25. Mai 2006 19:48
Kontaktdaten:

Beitrag von FaS »

Via HTML definieren was ein Link sein soll, dann brauchst du auch die Formatierung und den Cursor nicht manuell ändern.
suamikim
Beiträge: 59
Registriert: 1. November 2009 15:58

Beitrag von suamikim »

Hmmm, wo bzw. wie kann ich das definieren? Gibt es dazu vielleicht irgendwo eine etwas genauere Dokumentation?

danke
suamikim
Beiträge: 59
Registriert: 1. November 2009 15:58

Beitrag 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
Antworten