我的Qt GUI應用程序中有一個實用程序類。然而,在我的便利班,我想打電話給QMessageBox::critical()
,warning()
等。該班不是QWidget
,因此我不能通過this
作爲家長。然而,我的課程從QObject
分類,因此它可以運行諸如信號和插槽之類的東西。所以要解決這個問題 - 如果可能的話 - 我應該查看屬性API而不是使用Static API?如何在QWidget子類之外調用QMessageBox靜態API
類聲明:
class NetworkManager : public QObject
這裏還有一個失敗的靜態API調用的例子:
QMessageBox::critical(this, tr("Network"), tr("Unable to connect to host.\n"),
QMessageBox:Ok | QMessageBox:Discard);
所以,如果我要建立一個物業基於API的消息框,會是莫名其妙地用QObject
稱呼它?我沒有真正使用Property Based API,但是我從文檔中瞭解到它似乎使用了一個事件循環(即exec()
)。
我以爲你可以通過'nullptr'?對於靜態便利方法,該對話框固定爲應用程序模式。 – cmannett85 2013-03-19 15:05:13
這實際上是一個有趣的想法。這比使用我不熟悉的API重做10個以上的消息框要容易得多:P – ContingencyCoder 2013-03-19 15:11:08