如何将锚<a>
放入小部件的whatsThis
中以拦截它被单击?
我知道在QLabel中的linkActivated
,或在QTextBrowser中的linkClicked
,但我不知道如何用what This text做同样的事情。
要清楚,我想知道如果没有拦截帮助事件和管理我自己的WhatsThis机制,这是可能的。
如果我理解你的问题,那就是你想知道是否有一个SIGNAL()
。似乎没有。似乎您必须通过派生自己的Widget类或使用某种全局过滤器来监视QWhatsThisClickedEvent
:
http://qtcentre.org/archive/index.php/t - 7394. - html
仅供参考,QWhatsThisClickedEvent
在Qt源中发出的实际点在这里:
http://qt.gitorious.org/qt/qt/blobs/4.7/src/gui/kernel/qwhatsthis.cpp line264
HostileFork的答案非常准确。一种简单的方法可能有效,除非您的小部件本身捕获WhatsThisClicked
事件,那就是在主窗口的小部件中侦听WhatsThisClicked
事件。代码非常简单,如下所示:
bool MyMainWindow::event(QEvent* ev)
{
if (ev->type() == QEvent::WhatsThisClicked)
{
ev->accept();
QWhatsThisClickedEvent* whatsThisEvent = dynamic_cast<QWhatsThisClickedEvent*>(ev);
assert(whatsThisEvent);
QDesktopServices::openUrl(whatsThisEvent->href());
return true;
}
return QMainWindow::event(ev);
}