2012-04-05 15 views
2

Ich habe bereits textFormat auf Qt::RichText festgelegt, aber der Link ist immer noch nicht anklickbar.QMessageBox mit Link innerhalb, kann nicht klicken

QMessageBox msgBox(this); 
msgBox.setWindowTitle(QApplication::applicationName() 
         + " $VER " + QApplication::applicationVersion()); 
msgBox.setTextFormat(Qt::RichText); //this is what makes the links clickable 
msgBox.setText("<a href=\"google.com\">Google</a>"); 
msgBox.setStandardButtons(QMessageBox::Ok); 
msgBox.exec(); 

Irgendwelche Lösungen? Es hat bestätigt, dass es nicht mit Qt 4.7 funktioniert.

+1

Wie wäre es mit diesem: '" Google "'? – Anonymous

+0

@Anonymous auch nicht funktionieren .. Ich weiß wirklich nicht warum, sollte es xdg-open unter Linux – daisy

+0

aufrufen Erhalten Sie irgendwelche Debug-Ausgabe in der Konsole? Tritt das gleiche mit einem einfachen Standalone-Code auf? Gibt es eine Datei-Öffner-Anwendung für eine Desktop-Umgebung ('gvfs-open',' kde-open', etc.)? – Anonymous

Antwort

2

Es funktioniert unter meinem Qt 4.7.4, obwohl ich Ihre HTML ändern musste. Minimal Beispiel:

#include <QApplication> 
#include <QMessageBox> 

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 

    QMessageBox msgBox; 
    msgBox.setTextFormat(Qt::RichText); //this is what makes the links clickable 
    msgBox.setText("<a href='http://google.com/'>Google</a>"); 
    msgBox.setStandardButtons(QMessageBox::Ok); 
    msgBox.exec(); 
    return app.exec(); 
} 

Wenn ich dieses verwenden, wird der Browser-Tab geöffnet zu werden, und folgende Meldung endet in meiner Konsole nach oben:

Created new window in existing browser session. 

Wenn ich Ihr msgBox.setText ich Fehler:

gvfs-open: file:///tmp/b/google.com: error opening location: Error stating file '/tmp/b/google.com': No such file or directory 
+0

Sind Sie auf Linux? Ich habe vergessen, dieses Tag hinzuzufügen ... – daisy

+0

Haben Sie das angegebene minimale Beispiel versucht? Können Sie auf den Link klicken? Passiert etwas? Alles, was auf die Konsole geschrieben wurde (z. B. "Neues Fenster in bestehender Browsersitzung erstellt")? – Anonymous

Verwandte Themen