我已经用PyQt4创建了一个布局。 我想用在QLineEdit( lineNetworkId )和( lineMask )字段中输入的网络更新QListView。
但是我也想有一个更新的列表,其中包括所有这些输入的网络,以便进行进一步的配置。
我的QListView在单击addButton后显示了GUI内的网络,这是可行的,但是我的附加列表( bgp )每次都被覆盖。
function bad() {
console.log('didn\'t skip')
return function() {
console.log('skipped')
}
}
var good = bad() // console logs didn't skip
good() // console logs skipped
bad()() // console logs didn't skip and skipped
答案 0 :(得分:3)
每次单击按钮时,您都会调用函数addItem:
self.addButton.clicked.connect(System.addItem)
没关系,但是每次调用函数时,您都在定义一个空列表:bgp = []
def addItem(self):
networks = {}
bgp = []
您应该在addItem(self)函数之外定义bgp,例如:
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
self.bgp = []
self.addButton.clicked.connect(System.addItem)
class System:
def addItem(self):
...
for key, value in networks.items():
bgp_add = 'network {0} mask {1}'.format(key, value)
Ui_MainWindow.bgp.append(bgp_add)