Pyqt5 List Widget 用户自定义添加/删除字段

添加和删除字段的逻辑

在窗口上显示一个list widget的窗口,还有一个添加字段的按钮

点击添加字段会弹出一个输入框,将内容作为一个item添加到list widget中

点击对应的已添加的字段,即会显示删除按钮,点击即可删除该字段

效果


博主定义的此list widget名称为【strListWidget】,代码需要替换为你自己的list widget,【addBtn】同理

由于整体的代码太多,博主这里就写出了关键的代码,对应替换为自己代码即可

需要导入到包

from PyQt5.QtGui import QCursor
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QMessageBox, QWidget, QInputDialog, QMenu, QAction

绑定对应的事件

# 绑定添加事件
self.addBtn.clicked.connect(self.add_item)

# 绑定删除事件
self.strListWidget.itemClicked.connect(self.show_context_menu)

对应的事件

# 添加对应的字段
def add_item(self):
    item_text, ok = QInputDialog.getText(self, "添加字段", "输入内容")
    if ok and item_text:
        self.strListWidget.addItem(item_text)


# 删除对应的字段
def show_context_menu(self):
    context_menu = QMenu(self)
    delete_action = QAction("删除", self)
    delete_action.triggered.connect(self.delete_item)

    context_menu.addAction(delete_action)
    pos = self.strListWidget.mapToGlobal(self.strListWidget.viewport().pos()) + self.strListWidget.mapFromGlobal(
        QCursor().pos())
    context_menu.exec_(pos)


# 删除事件
def delete_item(self):
    current_row = self.strListWidget.currentRow()
    if current_row >= 0:
        self.strListWidget.takeItem(current_row)

效果

        添加

                

        删除

        ​​​​​​​        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值