gpt4 book ai didi

c++ - QT,C++ : How do Signal and Slots works with listWidgetItems?

转载 作者:行者123 更新时间:2023-11-30 04:44:17 24 4
gpt4 key购买 nike

我有一个带复选框的WidgetList,我想将它们用作调用slotTest 函数的信号。

不幸的是,代码不起作用,我找不到解决方案:

connect(ui->listWidget, SIGNAL(item->checkState()), this, SLOT(slotTest()), Qt::QueuedConnection);

更多代码:

 QStringList list;
list << "CH1 100kHz" << "CH2 100kHz" << "CH3 100kHz";
model->setStringList(list);
ui->listView->setModel(model);
ui->listView->setEditTriggers(QAbstractItemView::AnyKeyPressed | QAbstractItemView::DoubleClicked);
//ui->listView->setSelectionMode(QAbstractItemView::S)
ui->listWidget->addItems(list);



QListWidgetItem* item = 0;
for(int i = 0; i < ui->listWidget->count(); ++i){
item = ui->listWidget->item(i);
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
item->setFlags(item->flags() | Qt::ItemIsEditable);

item->setCheckState(Qt::Unchecked);
//connect(ui->listWidget, SIGNAL(itemClicked()), this, SLOT(slotTest()), Qt::QueuedConnection);

// bool ischeck=ui->listWidget->item(i)->checkState();
connect(ui->listWidget, SIGNAL(item->checkState()), this, SLOT(slotTest()), Qt::QueuedConnection);

}

最佳答案

拳头,checkState()不是信号,因此您无法连接到它。此外,connect() 的第一个参数call 应该是信号的实际发送者,而不是它的父级。

一种替代方法是连接到 QListWidget 发出的信号之一。当用户与控件交互时。您应该对它们进行测试,以确定哪一个最适合您的用例。

例如:

QObject::connect(ui->listWidget, &QListWidget::itemChanged, this, &MainWindow::slotTest);
void MainWindow::slotTest(QListWidgetItem *item)
{
qInfo() << item->checkState();
}

关于c++ - QT,C++ : How do Signal and Slots works with listWidgetItems?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57849686/

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