リンクを含む警告QMessageBoxをユーザーに表示したいと思います。これは比較的簡単です。メッセージボックスでリッチテキストテキスト形式を設定していることを確認するだけでQMessageBox
、残りはセットアップで実行されます。ただし、ユーザーがリンクをクリックした場合は、メッセージボックスを閉じたいと思います(done()
ユーザーがメッセージを確認して決定したという意味です)。
問題:内部(テキストの保存に使用される)からQMessageBox
の信号を非表示にします。linkActivated
QLabel
QMessageBox
クラスを拡張して、コンストラクターでこの非常に醜いハックを実行できると思いました。
QLabel *lbl = findChild<QLabel*>(QString("qt_msgbox_label"));
assert(lbl != NULL);
connect(lbl, SIGNAL(linkActivated(const QString&)), this, SLOT(handle_link_activation(const QString&)));
しかし、で見つかったラベルfindChild
はnullではなく、"qt_msgbox_label"
間違いなく正しく(ソースからc / pされた)、「そのようなシグナル/スロットはありません」というメッセージはありませんが、リンクをクリックしてもスロットが呼び出されることはありません。
振る舞いQDialog
を模倣するような自分の文章を書くことは避けたいと思います。QMessageBox
誰かが私がその信号をキャッチする方法について何か考えがありますか?