Так что в моей программе я динамически генерирую 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();
}
}
EDIT: В принципе, я хочу, чтобы QLineEdit отображался (или создавался) в той же строке, что и мой QCheckBox, когда создается QCheckBox, а с помощью функции QObject :: connect я могу только связывать объекты с одной и той же функцией, как я могу это работает?
Спасибо, что сообщили нам. Эмм ... в чем вопрос? – Greenflow
Прошу прощения, если это не совсем кристально чистое, я хочу, чтобы «QLineEdit» отображался (или создавался) в той же строке, что и «QCheckBox» при создании 'QCheckBox', и с помощью Функция 'QObject :: connect'. Я могу привязать объекты только к одной и той же функции, как я могу это работать? –
Btw .. вы должны изменить свое название ... различные функции для одного и того же события. Сигнал, а не событие. Событие имеет в Qt четко определенное и совершенно другое значение. – Greenflow