QListWidget中随机元素的变化属性
Change property of random element in QListWidget
我在 QListWidget
(ui->listWidget
) 中有 5 个 QProgressBar
。如何访问第三个 QProgressBar
元素并更改其值 ex。 ( progressBar->setValue(40)
)
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
a = new QPushButton(this);
connect(a, SIGNAL (clicked()),this, SLOT (clickedSlot()));
}
void MainWindow::clickedSlot()
{
QProgressBar *prog = new QProgressBar(this);
QListWidgetItem *it;
it = new QListWidgetItem(ui->listWidget);
ui->listWidget->insertItem(ui->listWidget->size().height(),it);
it->setSizeHint(QSize(200,50));
ui->listWidget->setItemWidget(it, prog);
}
在 class 头文件中创建 QProgressBar(s) 的定义,然后您可以将事物连接到 setValue 插槽,或直接访问它们。
向 QListWidgetItems 添加 ProgressBars 似乎很奇怪……QHBoxLayout 不是更合适吗?
以下代码将获取列表中的第三个元素并将进度设置为40%。
QProgressBar *bar = qobject_cast<QProgressBar*>(ui->listWidget->itemWidget(pList->item(2)));
if (bar)
bar->setValue(40);
qobject_cast
将安全地将 QWidget 转换为 QProgressBar,前提是该小部件确实是 QProgressBar。如果你确定第三个元素是一个QProgressBar,你可以省略if测试if(bar)
.
有关详细信息,请参阅 qt 文档 QListWidget and qobject_cast。
我在 QListWidget
(ui->listWidget
) 中有 5 个 QProgressBar
。如何访问第三个 QProgressBar
元素并更改其值 ex。 ( progressBar->setValue(40)
)
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
a = new QPushButton(this);
connect(a, SIGNAL (clicked()),this, SLOT (clickedSlot()));
}
void MainWindow::clickedSlot()
{
QProgressBar *prog = new QProgressBar(this);
QListWidgetItem *it;
it = new QListWidgetItem(ui->listWidget);
ui->listWidget->insertItem(ui->listWidget->size().height(),it);
it->setSizeHint(QSize(200,50));
ui->listWidget->setItemWidget(it, prog);
}
在 class 头文件中创建 QProgressBar(s) 的定义,然后您可以将事物连接到 setValue 插槽,或直接访问它们。
向 QListWidgetItems 添加 ProgressBars 似乎很奇怪……QHBoxLayout 不是更合适吗?
以下代码将获取列表中的第三个元素并将进度设置为40%。
QProgressBar *bar = qobject_cast<QProgressBar*>(ui->listWidget->itemWidget(pList->item(2)));
if (bar)
bar->setValue(40);
qobject_cast
将安全地将 QWidget 转换为 QProgressBar,前提是该小部件确实是 QProgressBar。如果你确定第三个元素是一个QProgressBar,你可以省略if测试if(bar)
.
有关详细信息,请参阅 qt 文档 QListWidget and qobject_cast。