你好簡單的問題,但我找不到答案。 我目前在標籤的完整路徑exe文件在桌面上,我怎樣才能使它可點擊超鏈接 ,將推出該exe文件?Qt:如何超鏈接到EXE文件
3
A
回答
3
您可以使用此代碼:
QLabel *lbl = new QLabel;
lbl->setText("<a href='file:///c:/fg740p.exe'>Open</a>");
lbl->setOpenExternalLinks(true);
lbl->show();
替代C:/fg740p.exe與路徑的.exe文件。 而且您可能知道打開是向用戶顯示的內容。
+0
@ user63898如果你的路徑是一個變量,那麼首先構造一個QString的。 'QString url(「Open」; lbl-> setText(url);' –
3
賽義德的代碼應該在Windows上運行,但在其他平臺上的安全性是嚴格和操作系統可能不允許你勞克這樣的外部應用程序(Linux爲例。)
便攜的方式做這是先創建QLabel像往常一樣:
QLabel* label = new QLabel(parent);
然後把一個鏈接在它:
label->setText("<a href='dummy_string'>Execute</a>");
然後連接的linkActivated(QString的)信號到一個槽,這樣每當用戶點擊該標籤內的鏈接你收到此通知:
connect(label, SIGNAL(linkActivated(QString)), SLOT(onLinkClick()));
由於有標籤裏面只有一個鏈接,該插槽不需要帶任何參數,因爲沒有必要在鏈接之間進行區分。因此,它可以是這樣的:
void onLinkClick()
{
QProcess::startDetached("path/to/program.exe");
}
如果改爲選擇使用一個插槽,需要的QString,傳遞的值將鏈接的文本href
。這可以讓你在QLabel中添加幾個鏈接,並知道其中哪些實際被點擊了。例如:
label->setText("<a href='path/to/1.exe'>Run 1.exe</a>"
<a href='path/to/2.exe'>Run 2.exe</a>");
connect(label, SIGNAL(linkActivated(QString)), SLOT(onLinkClick(QString)));
// ...
void onLinkClick(QString exeFilePath)
{
QProcess::startDetached(exeFilePath);
}
當我用文字combain它的格式,我的鏈接以純文本
相關問題
- 1. 指向EXE文件的超鏈接
- 2. 如何鏈接C++中的.exe文件?
- 3. QList中的QT超鏈接
- 4. 的Qt如何提取超鏈接到一個變量
- 5. 從Visual Studio項目到文件.exe(Qt)
- 6. 超鏈接到文本文件如何在webform中打開?
- 7. 如何鏈接到Qt助手中的PDF文件?
- 8. 超鏈接到webdav文件夾
- 9. Qt - 最終的exe文件
- 10. qt exe文件不運行
- 11. 超鏈接。屬性文件
- 12. jQuery預先鏈接到鏈接到PDF文件的所有超鏈接元素
- 13. Qt 5.6 - 如何將QTreeWidget鏈接到mainWindow?
- 14. 如何將最低限度的Qt庫鏈接到我的項目/ exe
- 15. 將文本鏈接添加到電子郵件的超鏈接
- 16. 如何將超鏈接添加到.rdl文件中的列
- 17. 如何製作超級鏈接到本地可執行文件?
- 18. 如何生成超鏈接到Powershell目錄中的.htm文件?
- 19. 如何從linux qt編譯文件更改爲windows .exe文件?
- 20. 目錄文件列表和超鏈接沒有超鏈接權
- 21. qt如何鏈接win32庫
- 22. 如何防止Qt鏈接
- 23. 如何使用Nuget包附帶的鏈接的exe文件
- 24. 如何將文件鏈接到文檔?
- 25. 如何防止鏈接超鏈接
- 26. 超鏈接到servlet
- 27. 宏到超鏈接
- 28. 超鏈接到xpath
- 29. 如何從PDF文件超鏈接到PPT文件中的特定頁面
- 30. 如何找到超鏈接字段
奇怪的事情,但如果我這樣做,你showen其工作,例如不工作: 用戶界面 - > labelDone->的setText(」等等你的桌面。\ n「 \t」Open「\t); and working: ui-> labelDone-> setText(「Open」\t); 我該如何支持2? – user63898
@ user63898〜>使用完整的HTML:'lbl->的setText( 「
」 「 Open」);' – saeed