C++Qt不用UI的形式实现选中一个QlistWidget中的字符串通过点击Button添加到另一个QlistWidget中
时间: 2024-05-16 08:17:10 浏览: 90
可以通过以下步骤实现:
1. 创建两个 QListWidget 对象,分别表示源列表和目标列表。
2. 在界面上添加一个 QPushButton 对象,并为其添加一个槽函数。
3. 在槽函数中,使用 QListWidget::currentItem() 方法获取当前选中的 QListWidgetItem 对象。
4. 使用 QListWidgetItem::text() 方法获取选中项的文本。
5. 使用 QListWidget::addItem() 方法将选中项的文本添加到目标列表中。
下面是一个示例代码:
```c++
// 创建源列表和目标列表
QListWidget *srcList = new QListWidget(this);
QListWidget *destList = new QListWidget(this);
// 添加字符串到源列表
srcList->addItem("Item 1");
srcList->addItem("Item 2");
srcList->addItem("Item 3");
// 创建按钮,并为其添加槽函数
QPushButton *button = new QPushButton("Add item", this);
connect(button, &QPushButton::clicked, [=]() {
// 获取当前选中的 QListWidgetItem 对象
QListWidgetItem *selectedItem = srcList->currentItem();
if (selectedItem) {
// 将选中项的文本添加到目标列表中
destList->addItem(selectedItem->text());
}
});
// 将列表和按钮添加到布局中
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(srcList);
layout->addWidget(button);
layout->addWidget(destList);
setLayout(layout);
```
注意,在代码中使用了 lambda 表达式来定义槽函数。lambda 表达式中使用了 srcList 和 destList 对象,因此这些对象需要在类的成员变量中声明。
阅读全文