【发布时间】:2011-08-13 20:02:06
【问题描述】:
可能我要问的很容易,但我被卡住了! :(
我有一个QWidget,我在其中加载了一个QGridLayout,我在其中添加了一些QCheckBox'es
我似乎无法弄清楚如何从复选框中捕获 changestate 信号......
复选框被添加到一个 for 循环中,我在其中创建了一个新的 QCheckBox 并将其作为小部件添加到 qgridlayout...
我应该连接什么? 每个按钮的 changestate 信号到我的自定义插槽,还是其他?
我使用的代码是
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");
它正确显示复选框,我可以检查和取消检查它们,但我无法捕捉到信号... 我错过了什么? 谢谢!
【问题讨论】:
标签: qt signals-slots qcheckbox