【发布时间】:2019-08-24 18:02:48
【问题描述】:
我创建了一个 QListWidget... QListWidgetItem 由 QPushButton 和 QLineEdit 在 QHBoxLayout 内对齐...
QListWidgetItem 中的 QPushButton 链接到在单击 QListWidget 时应该从 QListWidget 中删除当前 QListWidgetItem 的函数...
我正在使用方法“takeItem()”将方法“currentRow()”的输出传递给它以删除条目...
问题是当我点击删除按钮时,QListWidgetItem 没有被选中,因此“currentRow()”什么也不返回...
我的问题:如何在我点击删除按钮后选择 QListWidgetItem 条目...
import sys
from PyQt4 import QtGui, QtCore
def Add_OtherItem():
ItemOther = CustomItem()
ItemOther.SetupItem(OthersCommandsWidget)
def Delete_OtherItem():
OthersCommandsWidget.takeItem(OthersCommandsWidget.currentRow())
app = QtGui.QApplication(sys.argv)
class CustomItem(object):
def SetupItem(self, OthersCommandList):
self.Item = QtGui.QListWidgetItem()
self.MainWidget = QtGui.QWidget()
self.CommandLine = QtGui.QLineEdit("")
self.DeleteButton = QtGui.QPushButton()
self.DeleteButton.setFixedSize(22, 22)
self.DeleteButton.clicked.connect(Delete_OtherItem)
self.ItemLayoutBox = QtGui.QHBoxLayout()
self.ItemLayoutBox.addWidget(self.CommandLine)
self.ItemLayoutBox.addWidget(self.DeleteButton)
self.MainWidget.setLayout(self.ItemLayoutBox)
self.Item.setSizeHint(self.MainWidget.sizeHint())
OthersCommandList.addItem(self.Item)
OthersCommandList.setItemWidget(self.Item, self.MainWidget)
AppWindow = QtGui.QMainWindow()
AppWindow.setWindowTitle("PoC ListWidget")
AppWindow.setFixedSize(550, 550)
TabWindow = QtGui.QTabWidget(AppWindow)
TabWindow.setGeometry(8, 30, 535, 505)
WorkTAB = QtGui.QWidget()
TabWindow.addTab(WorkTAB, 'Tab.01')
OthersCommandsWidget = QtGui.QListWidget(WorkTAB)
OthersCommandsWidget.setGeometry(QtCore.QRect(8, 40, 515, 430))
AddButton = QtGui.QPushButton(WorkTAB)
AddButton.setText("Add Item")
AddButton.setGeometry(QtCore.QRect(8, 8, 0, 0))
AddButton.setFixedSize(70, 22)
AddButton.clicked.connect(Add_OtherItem)
AppWindow.show()
sys.exit(app.exec_())
【问题讨论】:
标签: python python-3.x pyqt pyqt4 qlistwidget