C++Qt不用UI的形式实现选中一个QlistWidget中的字符串通过点击Button移动到另一个QlistWidget中
时间: 2024-04-30 17:21:26 浏览: 166
基于C++的Qt开发框架
可以通过以下步骤实现:
1. 在界面上添加两个 QListWidget 控件和一个 QPushButton 按钮。
2. 在代码中对 QListWidget 进行初始化,可以在构造函数中设置。
3. 为 QPushButton 绑定一个点击事件的槽函数。
4. 在槽函数中,先判断选中的 QListWidget 中是否有选项被选中,如果没有则提示用户选择一项。
5. 如果有选项被选中,则获取选中项的文本内容,然后将其从源 QListWidget 中移除并添加到目标 QListWidget 中。
以下是示例代码:
```
// 在头文件中声明两个 QListWidget 和一个 QPushButton
private:
QListWidget *srcListWidget;
QListWidget *dstListWidget;
QPushButton *moveButton;
// 在构造函数中进行初始化
MyClass::MyClass(QWidget *parent)
: QWidget(parent)
{
// 创建 QListWidget 控件
srcListWidget = new QListWidget(this);
dstListWidget = new QListWidget(this);
// 设置 QListWidget 的大小和位置
srcListWidget->setGeometry(10, 10, 120, 120);
dstListWidget->setGeometry(200, 10, 120, 120);
// 添加一些项到 QListWidget 中
srcListWidget->addItem("Item 1");
srcListWidget->addItem("Item 2");
srcListWidget->addItem("Item 3");
// 创建 QPushButton 按钮
moveButton = new QPushButton("Move", this);
// 设置 QPushButton 的大小和位置
moveButton->setGeometry(140, 60, 50, 30);
// 将 QPushButton 的点击事件与槽函数绑定
connect(moveButton, SIGNAL(clicked()), this, SLOT(onMoveButtonClicked()));
}
// 定义槽函数 onMoveButtonClicked
void MyClass::onMoveButtonClicked()
{
// 获取选中的 QListWidget
QListWidget *selectedListWidget = qobject_cast<QListWidget*>(sender() == srcListWidget ? srcListWidget : dstListWidget);
// 获取选中项的数量
int count = selectedListWidget->selectedItems().count();
// 如果没有选中项,则提示用户选择一项
if (count == 0) {
QMessageBox::information(this, "Information", "Please select an item.");
return;
}
// 获取选中项的文本内容
QString text = selectedListWidget->selectedItems().at(0)->text();
// 将选中项从源 QListWidget 中移除
selectedListWidget->takeItem(selectedListWidget->currentRow());
// 将选中项添加到目标 QListWidget 中
if (selectedListWidget == srcListWidget) {
dstListWidget->addItem(text);
} else {
srcListWidget->addItem(text);
}
}
```
阅读全文