每次单击“添加项目...”按钮后,我希望将一行(标签,按钮)附加到布局(在同一按钮下方)。
因此,它应该每次点击添加一行。
问题是它添加了以下内容:
第一次点击:添加 1 行(项目行总数 = 1)(正确)
第二次点击:添加了 2 行(总项目行 = 3)(应该是 2)
第三次点击:添加了 3 行(项目总行 = 6)(应该是 3)
以下是相关代码:
from PySide import QtCore
from PySide import QtGui
import sys
class Form(QtGui.QDialog):
items = []
def __init__(self, parent = None):
super(Form, self).__init__(parent)
self.btn = QtGui.QPushButton("Add Item...")
self.btn.clicked.connect(self.item_toggle)
self.layout = self.initial_view()
self.setLayout(self.layout)
def item_toggle(self, add = True):
layout = self.layout
if add:
string = ("25468 5263.35 54246") #####random text
self.items.append(string)
for item in self.items:
rem_btn = QtGui.QPushButton("X")
rem_btn.clicked.connect(self.remove_item)
layout.addRow(item, rem_btn)
self.setLayout(layout)
def remove_item(self, ):
#self.items.pop() #something to delete that item
self.add_item("False") #redraw items part
def initial_view(self, ):
layout = QtGui.QFormLayout()
#adding to layout
layout.addRow(self.btn)
return layout
app = QtGui.QApplication(sys.argv)
form = Form()
form.show()
app.exec_()
我认为它不会删除以前的小部件,但我无法安静地弄清楚。此外,删除项目的方法(remove_item 函数)也可以帮助我。
我希望我解释得很好,你得到我想要做的......
任何帮助将不胜感激。提前致谢