作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带复选框的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/
我是一名优秀的程序员,十分优秀!