可能我所问的很容易,但我卡住了! :(QT和复选框问题
我有一个QWidget
在我打开一个QGridLayout
中,我添加了一些QCheckBox
“ES
我似乎无法弄清楚如何捕捉从复选框的改变状态的信号... 。
的复选框中添加循环,其中我创建了一个新的QCheckBox 这和将其添加为一个小部件的qgridlayout ...
我应该连接什么? 每个按钮更改状态信号到我的自定义插槽或som还有什么?
我使用的代码是
QGridLayout *myLayout = new QGridLayout;
for (int i=0; i<(int)m_List.size(); i++)
{
QCheckBox *button = new QCheckBox;
button->setText(m_List[i].m_strName.c_str());
button->setIcon(QIcon(m_List[i].m_strThumbNailPath.c_str()));
button->setIconSize(QSize(50, 50));
button->setCheckable(true);
myLayout->addWidget(button);
connect(button, SIGNAL(stateChanged), this, SLOT(checkboxStateChanged));
}
myLayout->setRowStretch(2, 10);
myLayout->setColumnStretch(2, 10);
QWidget *myWidget = new QWidget;
myWidget->setLayout(myLayout);
myToolbox = new QToolBox;
myToolbox->addItem(myWidget, "Options");
它正确显示复选框,我可以检查,并取消选中它们,但我不能赶上信号... 我失去了什么? 谢谢!
事实上,OP应该可能连接到'SIGNAL(切换(布尔))'。 'SIGNAL(stateChanged(int))'只对tristate复选框很有用(很少使用)。是的,[文档](http://doc.trolltech.com/4.7/qcheckbox.html)在这里有点误导(改为在'QAbstactButton'中定义''tedggled(bool)')。 – 2011-04-27 12:52:08
嗯,我刚刚回答了他的问题( - : – snoofkin 2011-04-27 12:53:53
我希望,对于使用旧式信号/插槽的每个回答,一些更高级的用户会通过新的样式信号和插槽重新回答。 – neuronet 2014-06-27 01:14:16