Я пытаюсь сделать что-то, что, по моему мнению, было бы очень легко: добавление QRadioButton в мою QWizardPage без макета.Добавить QRadioButton в QWidget без макета
Следующий код, который добавляет QRadioButton вызывается, когда пользователь нажимает кнопку Next (сигнал currentIdChanged вызывает код):
int newPositionY = 0;
for (vector<Events::VCS::PnPDevice>::const_iterator it=m_devices.begin(); it!=m_devices.end(); it++)
{
if (it->type == Events::VCS::HEADSET)
{
//add a radio button
stringstream text;
text << (it->name) << " " << (it->serialNumber);
QRadioButton* radioButton = new QRadioButton(ui.wpSINGLE_USER);
radioButton->setGeometry(50, 20 + newPositionY, 260, 40);
radioButton->setText(text.str().c_str());
newPositionY = newPositionY + 40
}
}
}
Я добавил этот маленький кусочек кода, чтобы увидеть, что происходит с моим QRadioButton
QList<QRadioButton*> listButton = ui.wpSINGLE_USER->findChildren<QRadioButton*>();
int size = listButton.size();
QRect rect1 = listButton[0]->rect();
QRect rect2 = listButton[1]->rect();
Я тогда понял, что кажется, что проблема может быть QRect.
Значение для rect1 и rect2 ошибочно. rect1 = (0, 0, 259, 39) и rect2 = (0, 0, 259, 39) Правильное значение для rect1 должно быть (50, 20, 260, 40) и n для rect2 (50, 60, 260, 40)
Итак, в чем проблема, как добавить QRadioButton в QWidget без макета?
EDIT
Это странно, если, вместо добавления QRadioButton в QWizardPage, когда пользователь нажимает кнопку, расположенную рядом я добавляю их в застройщик QWizard, это работает.
Может кто-нибудь сказать мне, почему я не могу добавить QRadioButton в свою QWizardPage в мою функцию слота?
Благодаря
Обновление не работает, но добавление QRadioButton в макет работ. Также +1 для вас действительно хороший и хорошо документированный ответ. Благодарю. – peterphonic