QStringList head; head << "ID" << "生产订单号" << "开胶工单号" << "物料编码" << "生产总重" << "版本号" << "绑定机台" << "操作员" << "开始时间" << "结束时间"; QScroller *pScroller = QScroller::scroller(ui->tWidgetOrder); pScroller->grabGesture(ui->tWidgetOrder,QScroller::LeftMouseButtonGesture); ui->tWidgetOrder->setVerticalScrollMode(QListWidget::ScrollPerPixel); ui->tWidgetOrder->setColumnCount(head.count()); ui->tWidgetOrder->setHorizontalHeaderLabels(head); ui->tWidgetOrder->horizontalHeader()->setAutoScroll(true); ui->tWidgetOrder->setEditTriggers(QAbstractItemView::NoEditTriggers); ui->tWidgetOrder->setSelectionMode(QAbstractItemView::SingleSelection); ui->tWidgetOrder->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tWidgetOrder->setColumnHidden(0, true);点击行数获取到id的值
时间: 2023-06-14 20:06:19 浏览: 116
您可以在`QListWidget`的`itemSelectionChanged`信号中获取所选行的`QListWidgetItem`对象,然后通过`QListWidgetItem`的`data`方法获取该行的ID值。示例代码如下:
```cpp
connect(ui->tWidgetOrder, &QListWidget::itemSelectionChanged, this, [this]() {
QListWidgetItem *item = ui->tWidgetOrder->currentItem();
if (item) {
int id = item->data(Qt::UserRole).toInt();
qDebug() << "Selected ID:" << id;
}
});
```
在设置行数据时,您可以使用`QListWidgetItem`的`setData`方法将ID值设置为`Qt::UserRole`属性,示例代码如下:
```cpp
QListWidgetItem *item = new QListWidgetItem();
item->setData(Qt::UserRole, id);
//设置其他列的数据
ui->tWidgetOrder->addItem(item);
```
相关问题
QStringList sL; sL << name << intro << QString::number(price) << QString::number(rest) << store << type; return sL;
这段代码看起来像是一个函数,函数接受一些参数,然后把这些参数转换成字符串并存储到一个QStringList中,最后返回这个QStringList。具体来说:
- QStringList是一个Qt中的类,用于存储字符串列表。
- sL是一个QStringList对象,通过sL << xxx的形式,我们可以向这个对象中添加字符串。
- 参数name,intro,price,rest,store和type应该都是字符串或数字类型的变量,这里使用QString::number方法将数字类型转换为字符串类型。
- 最后,函数返回这个QStringList对象。
总的来说,这段代码的作用是将一些信息转换为字符串形式,并将这些字符串存储到一个列表中,方便后续的处理和展示。
QT中如何将QMultiMap<QString, QStringList> 转换为QMap<QString, QStringList>
`QMultiMap`和`QMap`都是关联容器,但是它们的插入方式不同。`QMap`要求每个键只能对应一个值,而`QMultiMap`允许每个键对应多个值。
因此,将`QMultiMap`转换为`QMap`时,需要考虑如何处理多个值的情况。一种方法是将每个键对应的所有值合并为一个字符串,然后将该字符串作为单个值插入到`QMap`中。
以下是完整代码:
```
QMultiMap<QString, QStringList> multiMap;
multiMap.insert("key1", QStringList() << "value1" << "value2");
multiMap.insert("key2", QStringList() << "value3" << "value4");
QMap<QString, QStringList> map;
foreach(const QString& key, multiMap.uniqueKeys()) {
QStringList values;
foreach(const QStringList& value, multiMap.values(key)) {
values.append(value.join(", "));
}
map.insert(key, values);
}
qDebug() << map; // 输出 { "key1": ["value1, value2"], "key2": ["value3, value4"] }
```
以上代码中,我们构造了一个`QMultiMap<QString, QStringList>`类型的对象`multiMap`,其中包含了两个键值对。然后使用`foreach`循环将每个键对应的所有值合并为一个字符串,并将该字符串作为单个值插入到`QMap`类型的对象`map`中,最后输出`map`的值。
阅读全文