私は手動でclicked()のSIGNALをキャッチし、デスクトップサービスを使用してコード内のURLを開きます。
bool QDesktopServices::openUrl (const QUrl & url) [static]
ユーザーのデスクトップ環境に適したWebブラウザで指定したURLを開き、成功した場合trueを返します。それ以外の場合はfalseを返します。
http://doc.qt.io/qt-4.8/signalsandslots.html構文のこのタイプを使用
、またはデザイナーで、あなたはまた、スロットに信号を接続することができます。クリック(または任意のイベントに興味があります)のために設定信号を持っていない、あなたが質問にウィジェットをサブクラス化して再実装できるウィジェットの
connect(widgetThatRepresentsURL, SIGNAL(clicked()),
handlerThatWillOpenTheURL, SLOT(clicked_on_url()));
...
void QWidget::mousePressEvent (QMouseEvent * event) [virtual protected]
具体的に信号を作成するには、emit
があります。
class Link : public QWidget {
Q_OBJECT
public:
Link(QUrl url, QWidget p = nullptr) : QWidget(p), _url(url) {}
QUrl _url;
void mouseReleaseEvent(QMouseEvent *) { QDesktopServices::openUrl(_url); }
}
:私はあなたが簡単にウィジェットをクリックでリンクを開くことができますヘッダに以下の
signals:
void focus(Cell *, bool);
申し訳ありませんが、私の悪い、それはここに3時です。私はQLabelとハイパーリンクを見て、 "ああこれはもう一度"のようなものでした:D – dtech
@dtech心配はありません!それは起こります:) – xkenshin14x
マウスクリックハンドラーで 'QDesktopServices :: openUrl(yourURL)'を試してみてください。 – dtech