可能我所問的很容易,但我卡住了! :(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