简单的Pyqt5--- QListWidget 实现表单内数据多选,表单内数据上下移动

import sys
from PyQt5.QtWidgets import QApplication,QMainWindow
from button import Ui_MainWindow

class MyMainWindow(QMainWindow,Ui_MainWindow):          #定义继承类
    def __init__(self,parent=None):               
        super(MyMainWindow,self).__init__(parent)      #继承父类
        self.setupUi(self)
        self.listWidget.itemSelectionChanged.connect(self.clicked)#列表部件进行操作后触发
        self.pushButton_2.clicked.connect(self.move_Down)
        self.pushButton.clicked.connect(self.move_Up)
    def clicked(self):   #选择菜单
        # items = self.listWidget.selectedItems()   有item.text()方法显示所有项
        indexes = self.listWidget.selectedIndexes()
        # items.sort()
        output_value =[]
        output_index =[]
        for index in indexes:
            current_index = index.row()
            output_index.append(current_index)
        output_index.sort()
        for index in output_index:
            current_index = int(index)
            current_value = self.listWidget.item(current_index).text()   
            output_value.append(current_value)
        print(output_value)
    def move_Down(self):
        index_new = self.listWidget.selectedIndexes()[0].row()  #获取新行数值
        index_new = int(index_new)
        index_old = index_new + 1                                #获取旧行数
        value_old = self.listWidget.item(index_old).text()       #获取旧内容
        value_count = self.listWidget.count()                    #获取总内容数
        if int(index_new) != value_count - 1:                       #限制移动超出范围
           self.listWidget.takeItem(index_old)                   #删除置顶内容
           self.listWidget.insertItem(int(index_new),value_old)  #指定位置添加内容
    def move_Up(self):
        index_new = self.listWidget.selectedIndexes()[0].row()
        index_new = int(index_new)
        index_old = index_new - 1
        value_old = self.listWidget.item(index_old).text()
        if int(index_new) != 0:
           self.listWidget.takeItem(index_old)
           self.listWidget.insertItem(int(index_new),value_old)
            
        
        

if __name__=="__main__":
    app = QApplication(sys.argv)
    myWin =MyMainWindow()
    myWin.show()
    sys.exit(app.exec_())

主程序及界面程序。(界面程序保存时,请保存为button.py或自行修改主程序导入文件名称)

 

 

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'button.ui'
#
# Created by: PyQt5 UI code generator 5.9.2
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(260, 100, 75, 23))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(260, 230, 75, 23))
        self.pushButton_2.setObjectName("pushButton_2")
        self.listWidget = QtWidgets.QListWidget(self.centralwidget)
        self.listWidget.setGeometry(QtCore.QRect(420, 90, 256, 192))
        self.listWidget.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
        self.listWidget.setObjectName("listWidget")
        item = QtWidgets.QListWidgetItem()
        self.listWidget.addItem(item)
        item = QtWidgets.QListWidgetItem()
        self.listWidget.addItem(item)
        item = QtWidgets.QListWidgetItem()
        self.listWidget.addItem(item)
        item = QtWidgets.QListWidgetItem()
        self.listWidget.addItem(item)
        item = QtWidgets.QListWidgetItem()
        self.listWidget.addItem(item)
        item = QtWidgets.QListWidgetItem()
        self.listWidget.addItem(item)
        item = QtWidgets.QListWidgetItem()
        self.listWidget.addItem(item)
        item = QtWidgets.QListWidgetItem()
        self.listWidget.addItem(item)
        item = QtWidgets.QListWidgetItem()
        self.listWidget.addItem(item)
        item = QtWidgets.QListWidgetItem()
        self.listWidget.addItem(item)
        self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_3.setGeometry(QtCore.QRect(260, 370, 75, 23))
        self.pushButton_3.setObjectName("pushButton_3")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        self.pushButton_3.clicked.connect(MainWindow.close)
        self.listWidget.itemSelectionChanged.connect(self.listWidget.show)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "Up"))
        self.pushButton_2.setText(_translate("MainWindow", "Down"))
        __sortingEnabled = self.listWidget.isSortingEnabled()
        self.listWidget.setSortingEnabled(False)
        item = self.listWidget.item(0)
        item.setText(_translate("MainWindow", "1"))
        item = self.listWidget.item(1)
        item.setText(_translate("MainWindow", "2"))
        item = self.listWidget.item(2)
        item.setText(_translate("MainWindow", "3"))
        item = self.listWidget.item(3)
        item.setText(_translate("MainWindow", "4"))
        item = self.listWidget.item(4)
        item.setText(_translate("MainWindow", "5"))
        item = self.listWidget.item(5)
        item.setText(_translate("MainWindow", "6"))
        item = self.listWidget.item(6)
        item.setText(_translate("MainWindow", "7"))
        item = self.listWidget.item(7)
        item.setText(_translate("MainWindow", "8"))
        item = self.listWidget.item(8)
        item.setText(_translate("MainWindow", "9"))
        item = self.listWidget.item(9)
        item.setText(_translate("MainWindow", "0"))
        self.listWidget.setSortingEnabled(__sortingEnabled)
        self.pushButton_3.setText(_translate("MainWindow", "Close"))

实现图

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值