從qt設計器中創建的表單繼承的最佳方式是什麼?從qt中的表單繼承的最佳方式
回答
沒有好的直接方式來繼承表單本身,你最好繼承爲表單創建的類。
class testBase : public QWidget
{
Q_OBJECT
public:
testBase (QWidget *parent = 0);
~testBase();
protected: // here was private
Ui::testBaseClass baseUi; // rename this
};
testBase ::testBase (QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
}
另外,如果你想添加一些其他的形式,這也有可能,你應該做一些額外的工作:
1)指定在基類子UI(一些容器)
的佔位符2)用嚮導創建你的孩子的形式。不要將你的基類作爲祖先傳遞,在嚮導中你應該說你從QWidget繼承。
3)爲你的派生類創建表單後,重寫派生爲你的基地的後代。 改變它的構造,線ui.setupUi(this)
應改爲ui.setupUi(baseUi.placeholder)
class testDerived : public testBase
{
Q_OBJECT
public:
testDerived (QWidget *parent = 0);
~testDerived();
private:
Ui::testDerivedClass ui;
};
testDerived::testDerived(QWidget *parent)
: testBase (parent)
{
ui.setupUi(baseUi.placeholder);
}
也注意,派生類中不會改變基類的形式,它擴展了它。您將無法在窗體構造函數中添加或刪除項目到基礎窗體,但您指定爲佔位符的容器將填充派生類的窗體數據。
當然。即使QtCreator也支持繼承方法。它不是從自身繼承,而是從QtDesigner生成的表單類繼承。 –
好吧,你可以繼承那個類。但這是不好的方法。它會導致名稱模糊和其他一些令人討厭的事情。固定沒有辦法 - 沒有好辦法 – Raiv
那會是什麼含糊不清?一般來說,我不明白它比繼承更脆弱。另見http://doc.qt.nokia.com/latest/designer-using-a-ui-file.html。 (順便說一句,我個人更喜歡指針到表單的方法;我只是質疑你的說法) –
- 1. 雪碧從組中繼承屬性的最佳方式?
- 2. Rails單表繼承 - 顯式設置類型的最佳方式是什麼?
- 3. Laravel 5中雄辯模型繼承的最佳方式?
- 4. 在Rust 1.3中繼承結構的最佳方式是什麼?
- 5. 從QGraphicsEllipseItem繼承Qt
- 6. 繼承和繼承最佳實踐
- 7. 打破繼承層次的最佳方式
- 8. 模擬XAML代碼繼承的最佳方式是什麼?
- 9. NodeJS - 繼承mongo連接的最佳方式
- 10. Qt中的視覺形式繼承
- 11. 從vb.net中的類繼承的表單
- 12. 繼承C#System.Type的最簡單方法
- 13. Qt QTableView多繼承方法
- 14. C#繼承最佳做法
- 15. java繼承最佳實踐?
- 16. JavaScript繼承最佳策略
- 17. 確定最佳繼承圖
- 18. Qt中的多級繼承
- 19. 修改繼承類中的select case的最佳方法
- 20. 表單操作的最佳方式?
- 21. 從單身模式繼承
- 22. PHP中的表單繼承?
- 23. 如何從Qt類繼承?
- 24. 以圖形方式表示Qt中的樹節點的最佳方式
- 25. 在Qt 5中創建繼承類的最簡單方法是什麼?
- 26. 最簡單的JavaScript繼承?
- 27. PHP:從具體類的父類中的繼承方法中鍵入提示類的最佳方式是什麼?
- 28. 在Eclipse中繼承子類的最佳方法?
- 29. Qt XML繼承
- 30. 將註釋添加到繼承方法的最佳方法
可以請您詳細說明您的問題 – SMK
與'私人'類繼承國際海事組織。 –