3
我可以設置父的狀態欄文本使用此功能,我寫設置家長的狀態欄文本?
void EditorWindow::setStatusBarText(const QString& text) {
statusBar()->showMessage(text);
}
這樣調用(從子)
((EditorWindow*) parent())->setStatusBarText(tr("%1, %2").arg(mousePos.x(), 0, 'f', 2).arg(mousePos.y(), 0, 'f', 2));
但我敢肯定,打破了一些設計原則。例如,如果parent()
不是EditorWindow*
?
那麼對此有什麼解決方法?強制用戶在創建時傳遞對EditorWindow
的引用以確保父類是正確的類型?
哦!我剛開始考慮信號/插槽,但我腦海中倒退了。我可以將它連接到父母,並減輕問題。輝煌!謝謝:) – mpen 2009-08-17 06:20:06
你實際上並不需要setStatusBarText函數,你可以直接使用showMessage:connect(editorView,SIGNAL(statusBarUpdate(QString)),statusBar(),SLOT(showMessage(QString))); – mpen 2009-08-17 07:30:45
@Mark - 認爲它是recv必須允許連接並且它必須有插槽。信號可能來自任何地方,可能永遠不會存在或永遠不會被使用。 – 2011-03-02 21:51:41