Jak mogę uczynić QLabel zachowaniem się jak linkiem? Chodzi mi o to, że chciałbym móc go kliknąć, a następnie wywołałoby to polecenie.Tworzenie QLabel zachowuje się jak hiperłącze
26
A
Odpowiedz
74
QLabel does this already.
Przykładowy kod:
myLabel->setText("<a href=\"http://example.com/\">Click Here!</a>");
myLabel->setTextFormat(Qt::RichText);
myLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
myLabel->setOpenExternalLinks(true);
7
Odpowiedź z cmannnett85 jest w porządku, jeśli chcesz po prostu otworzyć URL po kliknięciu łącza, a ty jesteś OK z osadzania tego adresu URL w polu tekstowym na etykiecie. Jeśli chcesz zrobić coś nieco niestandardowych, to zrobić:
QLabel * myLabel = new QLabel();
myLabel->setName("myLabel");
myLabel->setText("<a href=\"whatever\">text</a>");
myLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
Następnie można podłączyć sygnał etykiety linkActivated
do gniazda, i robić, co chcesz w tym gnieździe. (Odpowiedź ta zakłada, masz podstawową znajomość sygnałów i slotów Qt.)
Szczelina może wyglądać mniej więcej tak:
void MainWindow::on_myLabel_linkActivated(const QString & link)
{
QDesktopServices::openUrl(QUrl("http://www.example.com/"));
}
+0
Dziękuję bardzo. to działało. –
Powiązane problemy
- 1. dlaczego tworzenie instancji wbudowanych zachowuje się inaczej?
- 2. Tworzenie fasoli szparagowej zachowuje się jak instancje ThreadLocal dla ExecutorService
- 3. Textview zachowuje się jak terminal
- 4. SimpleDateFormat zachowuje się niekonsekwentnie
- 5. Transpaprent QLabel
- 6. Jak włączyć antyaliasing na Qlabel?
- 7. Jak utworzyć hiperłącze w MessageBox.show?
- 8. Guzzle nie zachowuje się jak CURL
- 9. Jak dokładnie zachowuje się "referencja" typedef?
- 10. Jak zachowuje się kanał nie zainicjowany?
- 11. Jak zrobić TLabel zachowywać się jak hiperłącze w Delphi?
- 12. Kolejka NSOperation zachowuje się niepoprawnie
- 13. Tryb zawijania słów QLabel
- 14. Automatyczne linie wielokrotne QLabel
- 15. Thread.join nie zachowuje się tak, jak się spodziewałem w scala
- 16. Jak uzyskać rozszerzenie QLabel do pełnej szerokości?
- 17. Czy można wybrać tekst QLabel?
- 18. jak utworzyć hiperłącze w extjs4?
- 19. Dlaczego nie działa ustawienie pixelapy obiektu QLabel?
- 20. new String() nie zachowuje się jak tablica jak obiekt
- 21. Kursor edytora asa zachowuje się niepoprawnie
- 22. Pętla 3,000,000,000 iteracje zachowuje się dziwnie
- 23. {NSDecimalNumber integerValue} dziwnie się zachowuje w iOS8
- 24. PHP file_get_contents() zachowuje się inaczej niż przeglądarka
- 25. Nitka zachowuje się dziwnie w JUnit
- 26. Dlaczego metoda rozszerzenia zachowuje się inaczej?
- 27. Marshmallow RelativeLayout zachowuje się dziwnie z alignBaseline
- 28. Hiperłącze w Androidzie
- 29. Hiperłącze przycisku Bootstrap
- 30. Czy przekierowanie 301 zawsze zachowuje stronę odsyłającą?
to dla niektórych dziwne powodu nie chce zachowywać się jak należy. Jak ustawić fnc/akcję, którą ma wywoływać? – user336635
Ty nie. Gdy parametr 'openExternalLinks()' ma wartość true, a flagi interakcji tekstowych są ustawione osobno, uruchamiane jest 'QDesktopServices :: openUrl()', przenoszące adres URL etykiety. – cmannett85
dzięki +1. Czy wiesz, czy mogę wywołać za pomocą tego zwykłego połączenia fnc – user336635