gpt4 book ai didi

c++ - Qt:小部件方法 addButtons() 不能按需要工作

转载 作者:行者123 更新时间:2023-11-28 00:04:01 25 4
gpt4 key购买 nike

<分区>

我在 Windows7 上使用 Qt5(初学者)。
在我的应用程序的主窗口中,我想显示和删除一些按钮。

widget = new ButtonWidget(ui->frame); // frame is a QScrollArea
connect(ui->addBtns, SIGNAL(clicked()), widget, SLOT(addButtons()));
connect(ui->deleteBtns, SIGNAL(clicked()), widget, SLOT(deleteButtons()));

ButtonWidget 类在这里:

ButtonWidget::ButtonWidget(QWidget * parent) : QWidget(parent)
{
//addButtons();
}

void ButtonWidget::addButtons()
{
QStringList texts{"1\nok", "2\nok", "3\nok", "4\nok", "5\nok", "6\nok"};
gridLayout = new QGridLayout;
for(int i = 0; i < texts.size(); i++)
{
QPushButton * button = new QPushButton(texts[i]);
gridLayout->addWidget(button, i / 5, i % 5);
}
setLayout(gridLayout);
}

// I'm not sure this method/function is ok... :(
void ButtonWidget::deleteButtons()
{
QLayoutItem * child;
while((child = gridLayout->takeAt(0)) != 0)
{
gridLayout->removeWidget(child->widget());
delete child->widget();
delete child;
}
delete gridLayout;
}

问题是:当我点击 add_buttons 时,我显示了所有按钮,但它们缩小了,变小了 或类似的东西......:
enter image description here

OTOH...如果我从构造函数中的 addButtons() 调用中删除注释(因此从构造函数内部调用),结果是好的:
enter image description here

所以,最后我有两个问题:
1) 如何修复代码以正确添加这些按钮(单击 add_buttons 时)?
2) deleteButtons() 方法是否正常?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com