C++Qt不用UI的形式实现选中一个QlistWidget中的字符串通过点击Button添加到另一个QlistWidget中
时间: 2024-05-15 13:13:59 浏览: 16
可以通过以下步骤实现选中一个`QListWidget`中的字符串,并通过点击`QPushButton`添加到另一个`QListWidget`中:
1. 创建两个`QListWidget`对象,一个用于显示源列表,另一个用于显示目标列表。
```cpp
QListWidget *srcList = new QListWidget();
QListWidget *tgtList = new QListWidget();
```
2. 将源列表添加到主窗口中,并设置其布局。
```cpp
QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(srcList);
layout->addWidget(tgtList);
setLayout(layout);
```
3. 为源列表添加一些字符串项。
```cpp
srcList->addItem("Item 1");
srcList->addItem("Item 2");
srcList->addItem("Item 3");
```
4. 创建一个`QPushButton`对象,并在其单击信号上连接一个槽函数,用于将选定的字符串项添加到目标列表中。
```cpp
QPushButton *addBtn = new QPushButton("Add");
connect(addBtn, &QPushButton::clicked, this, &MyMainWindow::onAddBtnClicked);
```
5. 实现槽函数`onAddBtnClicked()`,该函数将选定的字符串项从源列表复制到目标列表中。
```cpp
void MyMainWindow::onAddBtnClicked() {
QList<QListWidgetItem*> selectedItems = srcList->selectedItems();
foreach(QListWidgetItem *item, selectedItems) {
tgtList->addItem(item->text());
}
}
```
完整代码如下:
```cpp
#include <QtWidgets>
class MyMainWindow : public QMainWindow {
Q_OBJECT
public:
MyMainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {
QListWidget *srcList = new QListWidget();
QListWidget *tgtList = new QListWidget();
srcList->addItem("Item 1");
srcList->addItem("Item 2");
srcList->addItem("Item 3");
QPushButton *addBtn = new QPushButton("Add");
connect(addBtn, &QPushButton::clicked, this, &MyMainWindow::onAddBtnClicked);
QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(srcList);
layout->addWidget(addBtn);
layout->addWidget(tgtList);
QWidget *centralWidget = new QWidget();
centralWidget->setLayout(layout);
setCentralWidget(centralWidget);
}
private slots:
void onAddBtnClicked() {
QList<QListWidgetItem*> selectedItems = srcList->selectedItems();
foreach(QListWidgetItem *item, selectedItems) {
tgtList->addItem(item->text());
}
}
private:
QListWidget *srcList;
QListWidget *tgtList;
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MyMainWindow window;
window.show();
return app.exec();
}
#include "main.moc"
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![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)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)