2012-05-13 90 views
1

不知何故,我覺得這個問題真的很愚蠢,但我只花了2個小時閱讀本網站和其他信息來源,我只找到複雜的解決方案,而我堅信必須有一個非常簡單的問題。int和QComboBox之間的簡單連接?

例如,在TCL/TK中,我可以定義一個變量並將其綁定到2行代碼中的組合框。同樣在Qt/C++中,我有一個int定義在我的一個類中,我希望QCombobox將int設置爲所選元素的數字(索引)。

難道我真的必須深入研究模型/視圖及其類的深處來實現嗎?

回答

2

所有你需要的是一個連接到組合框的currentItemChanged(int)信號的插槽。該插槽可以更新您的int變量,或者做任何喜歡的選定索引。 (看看QComboBox的其他信號,有替代品。)

(這是爲connect一條線,而1,2或3線取決於你如何計算的插槽。)

+1

你可以利用如果使用'void on_widgetName_signalName(args)'語法則自動連接。這消除了將信號「連接」到您的插槽上的需要,所以(如果您將主體與函數名稱一致),您可以從字面上完成此操作。 – tmpearce

+0

請注意,'on_widgetName_signalname'技巧只有在您的UI來自'.ui'文件時纔會默認使用。如果您手動設置UI,則必須在所有要連接的小部件上設置setName(),並且必須在其他小部件有趣的小部件上手動調用'QMetaObject :: connectSlotsByName(QObject *)'作爲孩子的信號。 –