C++Qt不用UI的形式实现选中一个QlistWidget中的字符串通过点击Button移动到另一个QlistWidget中
时间: 2024-05-15 16:14:00 浏览: 8
可以通过以下步骤实现:
1. 创建两个 QListWidget 对象,分别用于显示源列表和目标列表。
2. 在源列表中添加一些字符串,可以使用 QListWidget::addItem() 函数。
3. 创建一个 QPushButton 对象,用于触发移动操作。
4. 连接按钮的 clicked() 信号到一个槽函数。
5. 在槽函数中,获取源列表中选中的字符串,可以使用 QListWidget::selectedItems() 函数。
6. 将选中的字符串从源列表中移除,可以使用 QListWidget::takeItem() 函数。
7. 将选中的字符串添加到目标列表中,可以使用 QListWidget::addItem() 函数。
下面是一个示例代码:
```cpp
// 创建源列表和目标列表
QListWidget* sourceList = new QListWidget(this);
QListWidget* targetList = new QListWidget(this);
// 在源列表中添加一些字符串
sourceList->addItem("Item 1");
sourceList->addItem("Item 2");
sourceList->addItem("Item 3");
// 创建一个按钮
QPushButton* moveButton = new QPushButton("Move", this);
// 连接按钮的 clicked() 信号到槽函数
connect(moveButton, &QPushButton::clicked, [=]() {
// 获取选中的字符串
QList<QListWidgetItem*> selectedItems = sourceList->selectedItems();
// 将选中的字符串从源列表中移除,并添加到目标列表中
for (QListWidgetItem* item : selectedItems) {
sourceList->takeItem(sourceList->row(item));
targetList->addItem(item->text());
}
});
// 创建布局,并将控件添加到布局中
QVBoxLayout* layout = new QVBoxLayout();
layout->addWidget(sourceList);
layout->addWidget(moveButton);
layout->addWidget(targetList);
setLayout(layout);
```
注意,该示例中使用了 lambda 表达式连接信号和槽函数,需要使用 C++11 或更高版本的编译器。如果你的编译器不支持 lambda 表达式,可以将连接方式改为使用信号和槽函数的字符串形式进行连接。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![jpg](https://img-home.csdnimg.cn/images/20210720090814.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)