为什么列表未附加但被覆盖?

时间:2019-03-27 16:04:36

标签: python list pyqt4

我已经用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

1 个答案:

答案 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)