2012-05-13 45 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 *)'作为孩子的信号。 –