你好简单的问题,但我找不到答案。 我在桌面上的标签完整路径exe文件,如何使它成为clickble超链接 那将启动exe?
答案 0 :(得分:3)
您可以使用此代码:
QLabel *lbl = new QLabel;
lbl->setText("<a href='file:///c:/fg740p.exe'>Open</a>");
lbl->setOpenExternalLinks(true);
lbl->show();
将 c:/fg740p.exe 替换为.exe文件的路径。 您可能知道打开是向用户显示的内容。
答案 1 :(得分:3)
可行的方法是首先像往常一样创建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);
}