title: pyqt dynamic generate QMenu action and connect
body: <p>Still learning how pyqt works.  I want to dynamically generate a customContextMenu and connect with a function.  So far I got the following but the connect part not working ?</p>
  
  <pre><code>import sys
  from PyQt4 import QtGui, QtCore
  
  class MainForm(QtGui.QMainWindow):
      def __init__(self, parent=None):
          super(MainForm, self).__init__(parent)
  
      # create button
      self.button = QtGui.QPushButton("test button", self)       
      self.button.resize(100, 30)
  
      # set button context menu policy
      self.button.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
      self.connect(self.button, QtCore.SIGNAL('customContextMenuRequested(const QPoint&amp;)'), self.on_context_menu)
      self.popMenu = QtGui.QMenu(self)
  
      def on_context_menu(self, point):
          self.popMenu.clear()
  
          #some test list for test
          testItems = ['itemA', 'itemB', 'itemC']
          for item in testItems:
              action = self.btn_selectPyFilterPopMenu.addAction("Selected %s" % item)
              self.connect(action,QtCore.SIGNAL("triggered()"),self,QtCore.SLOT("printItem('%s')" % item))    
          self.popMenu.exec_(self.button.mapToGlobal(point))
  
      @pyqtSlot(str)
      def printItem(self, item):
          print item
  
  def main():
      app = QtGui.QApplication(sys.argv)
      form = MainForm()
      form.show()
      app.exec_()
  
  if __name__ == '__main__':
      main()
  </code></pre>