所以在我的程序中,我動態生成一些QCheckBox
,數量取決於查詢的結果和每個QCheckBox
旁邊我想有一個QLineEdit
這將只有當QCheckBox
被選中時纔會顯示 ,那麼我怎樣才能連接它。qt創建動態對象和分配不同的功能,以相同的信號
到目前爲止, 我只有類似的東西,我不如何做到這一點,而不必動態創建的一切的指針的矢量(像vector<vector<QObject*> > objets;
):
sondage_page2::sondage_page2(QWidget *parent) :
QWidget(parent),
ui(new Ui::sondage_page2)
{
// ...
if(query.exec())
{
if(query.size()>0)
{
while(query.next())
{
QCheckBox* check=new QCheckBox(query.value("Marque").toString());
ui->gridLayout->addWidget(check,row,0,Qt::AlignHCenter);
vector<QObject*> temp;
temp.push_back(check);
objets.push_back(temp);
QObject::connect(check,SIGNAL(stateChanged(int)),this,SLOT(checked(int)));
}
// ...
}
}
}
void sondage_page2::checked(int state)
{
// très broken
if(state==2) // checked
{
QLineEdit* edit=new QLineEdit();
objets.at(objets.size()-1).push_back(edit);
ui->gridLayout->addWidget(edit,row-1,1,Qt::AlignHCenter);
}
else
{
delete objets.at(row-1).at(1);
objets.at(row-1).pop_back();
}
}
編輯:基本上,當QCheckBox被創建時,我想要在與QCheckBox相同的行上顯示(或創建)QLineEdit,並且使用QObject :: connect函數,我只能將objets鏈接到相同的函數,我怎麼能這工作?
謝謝你告訴我們。呃......這個問題是什麼? – Greenflow
對不起,如果它不是很清晰,我想在創建QCheckBox的時候在'QCheckBox'的同一行顯示(或創建)'QLineEdit', 'QObject :: connect'函數我只能將objets鏈接到同一個函數,我怎麼能這樣工作? –
Btw ..你應該改變你的標題...不同的功能,以同一事件。信號,而不是事件。事件在Qt中有一個明確的完全不同的含義。 – Greenflow