gpt4 book ai didi

c++ - 空 scrollArea QT C++

转载 作者:行者123 更新时间:2023-11-28 07:53:57 25 4
gpt4 key购买 nike

我正在从计时器执行的 xml 中加载数据。 xml 在实体对象中被解析和填充。在一个循环中,我从实体对象中获取数据并填充 QCommandLinkBut​​ton。最后将一批按钮设置到 verticalLayout 中,然后设置到 scrollArea 中。

但每次加载数据时,它都会附加到旧数据。如何在重新填充 scrollArea 之前清空 srollArea 的内容。

MainWindow::methodExecudedByTimer(){

foreach(int i, map.keys()){
QCommandLinkButton* buttonEmail = new QCommandLinkButton(this);
Email em = map[i];
buttonEmail->setText(em.__toString());

ui->verticalLayout->addWidget(buttonEmail);
}
ui->scrollArea->setLayout(ui->verticalLayout);
}

最佳答案

可以用setWidget代替setLayout,新数据来了,可以调用takeWidget去掉旧数据。主窗口::methodExecudedByTimer(){

foreach(int i, map.keys()){ 
QCommandLinkButton* buttonEmail = new QCommandLinkButton(this);
Email em = map[i];
buttonEmail->setText(em.__toString());

ui->verticalLayout->addWidget(buttonEmail);
}
ui->scrollArea->takeWidget();
QWidget *widget = new QWidget();
QSize size = ui->scrollArea->size();
widget->setMinimumSize(size.width(),size.height());
widget->setLayout(ui->verticalLayout);
ui->scrollArea->setWidget(widget);

关于c++ - 空 scrollArea QT C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13148487/

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