我已經開始再次與Qt合作。我們想要做的是自動生成圖形用戶界面。因此,我仔細研究了.ui文件格式(這是一種基於XML的文件格式)。這些文件由Qt Designer生成,但可以通過任何其他軟件輕鬆創建。這部分工作到目前爲止。Qt自定義小部件與自定義項目 - Qt設計器/ uic
但是:我們想添加一些自定義小部件。創建自定義小部件也並不困難。一些好的網站存在:Creating Custom Widgets for Qt Designer,Using Custom Widgets with Qt Designer,(更多超鏈接被阻止),...
我的問題是:你如何實現顯示自定義項目的自定義小部件。我們舉一個例子。我們有一個QComboBox和一個QSpinBox。組合框具有三個項目
- 甲
- 乙
- C.
當選擇 「A」 我想要的紡紗器的最低設置爲1,maxiumum設置爲9;當選擇「B」時,旋轉箱的最小值應該設置爲10,並且其最大值爲99;選擇「C」應該將spinbox的最小值設置爲100,最大值設置爲999.這是如何正確完成的?
此刻我將數據設置在QTableWidget中,這是一個輔助類。每行有三列/單元格:
item | min | max
-----+------+-----
A | 0 | 9
B | 10 | 99
C | 100 | 999
而且我有我的自定義小部件,其中包含QComboBox和QSpinBox。在運行時,我告訴自定義小部件從QTableWidget獲取數據/模型,並通過名爲setFriendContainer()的方法複製到它自己[它甚至是一個公共槽,它應該連接到自動發出的tablewidget的信號]。之後桌面小工具不再需要了!我甚至不想將它展示給用戶(這就是爲什麼一些尺寸屬性設置爲0;但部分尺寸屬性仍然可見)。
我認爲這並不是一個乾淨的方式來實現它。什麼會更好/替代?這些項目也會生成並應包含在相同的.ui文件中。當然,它可以在運行時從另一個文件加載它,但我認爲這不是一個選項。你認爲我的解決方法是好的,還是太「醜」?有一些例子,你可以看到如何添加單個自定義屬性,但我認爲這是不同的 - 如果你想添加整個容器(列表或項目表,無論什麼)。但將它包含在.ui文件中甚至可能違背整個模型/視圖概念?!
任何幫助歡迎!
感謝, 馬蒂亞斯