2012-04-05 2 views
2

Я уже установил textFormat в Qt::RichText, но ссылка по-прежнему неаккурата.QMessageBox со ссылкой внутри, не удалось нажать

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(); 

Любые решения? Подтверждено, что он не работает с Qt 4.7.

+1

Как насчет этого: '" Google "'? – Anonymous

+0

@ Анонимный тоже не работает. Я действительно не знаю, почему, он должен вызывать xdg-open на Linux. – daisy

+0

Получите ли вы отладочный вывод в консоли? То же самое происходит с простым автономным кодом? Есть ли приложение для создания файлов на рабочем столе ('gvfs-open',' kde-open' и т. Д.)? – Anonymous

ответ

2

Он работает под моим Qt 4.7.4, хотя мне пришлось изменить ваш HTML. Минимальный пример:

#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(); 
} 

Если я использую этот, вкладка браузера становится открыт, и следующее сообщение заканчивается в моей консоли:

Created new window in existing browser session. 

Если я использую ваш msgBox.setText я получаю сообщение об ошибке:

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

Вы в Linux? Я забыл добавить этот тег ... – daisy

+0

Вы пробовали предоставленный минимальный пример? Вы можете нажать ссылку? Что-нибудь происходит? Все, что написано на консоли (например, «Создано новое окно в существующем сеансе браузера»)? – Anonymous

Смежные вопросы