title: Create PyQt menu from a list of strings
body: <p>I have a list of strings and want to create a menu entry for each of those strings. When the user clicks on one of the entries, always the same function shall be called with the string as an argument. After some trying and research I came up with something like this:</p>
  
  <pre><code>import sys
  from PyQt4 import QtGui, QtCore
  
  class MainWindow(QtGui.QMainWindow):
      def __init__(self):
          QtGui.QMainWindow.__init__(self)
          self.menubar = self.menuBar()
          menuitems = ["Item 1","Item 2","Item 3"]
          menu = self.menubar.addMenu('&amp;Stuff')
          for item in menuitems:
              entry = menu.addAction(item)
              self.connect(entry,QtCore.SIGNAL('triggered()'), lambda: self.doStuff(item))
              menu.addAction(entry)
          print "init done"
  
      def doStuff(self, item):
          print item
  
  app = QtGui.QApplication(sys.argv)
  main = MainWindow()
  main.show()
  sys.exit(app.exec_())
  </code></pre>
  
  <p>Now the problem is that each of the menu items will print the same output: "Item 3" instead of the corresponding one. I'm thankful for any ideas about how I can get this right. Thanks.</p>