Ich würde einfach nur das Signal für clicked() fangen und Desktop-Dienste verwenden, um die URL im Code zu öffnen.
bool QDesktopServices::openUrl (const QUrl & url) [static]
öffnet die angegebene URL in dem entsprechenden Web-Browser für den Desktop-Umgebung des Benutzers und gibt true zurück, wenn sie erfolgreich ist; Andernfalls wird false zurückgegeben.
http://doc.qt.io/qt-4.8/signalsandslots.html
diese Art von Syntax verwenden, oder im Designer, können Sie auch ein Signal an einen Steckplatz angeschlossen werden.
connect(widgetThatRepresentsURL, SIGNAL(clicked()),
handlerThatWillOpenTheURL, SLOT(clicked_on_url()));
Für Widgets, die für klickten einrichten kein Signal haben (oder was auch immer Fall, dass Sie interessiert sind), können Sie das Widget in Frage Unterklasse und reimplementieren ...
void QWidget::mousePressEvent (QMouseEvent * event) [virtual protected]
Speziell Zum Erzeugen eines Signals gibt es emit
.
class Link : public QWidget {
Q_OBJECT
public:
Link(QUrl url, QWidget p = nullptr) : QWidget(p), _url(url) {}
QUrl _url;
void mouseReleaseEvent(QMouseEvent *) { QDesktopServices::openUrl(_url); }
}
: Ich habe dies in der Vergangenheit wie die
void Cell::focusInEvent(QFocusEvent *e)
{
emit focus(this, true);
QLineEdit::focusInEvent(e);
}
mit folgendem im Header
signals:
void focus(Cell *, bool);
Sorry, mein Schlechter, es ist 3 Uhr hier. Ich sah QLabel und Hyperlink und war wie "oh nicht das schon wieder": D – dtech
@dtech keine Sorgen !! es passiert :) – xkenshin14x
Probieren Sie 'QDesktopServices :: openUrl (yourURL)' im Mausklick-Handler. – dtech