Форум сайта python.su
#!/usr/bin/python import MySQLdb import sys from PyQt4 import QtCore,QtGui db = MySQLdb.connect(host="localhost", user="root", passwd="xxx", db="dev", charset='utf8') class GridLayout(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) def slotSaveNumber(num=0): sql="INSERT INTO numbers SET number =('"+str(num)+"')" cursor = db.cursor() cursor.execute(sql) self.setWindowTitle('test') names = ['1', '2', '3'] grid = QtGui.QGridLayout() j = 0 pos = [(0,0),(0,1),(0,2)] for i in names: button = QtGui.QPushButton(i) grid.addWidget(button, pos[j][0], pos[j][1]) #self.connect(button,QtCore.SIGNAL("clicked()"),app,slotSaveNumber(2)) self.connect(button,QtCore.SIGNAL("clicked()"),app,slotSaveNumber) j = j + 1 self.setLayout(grid) app = QtGui.QApplication(sys.argv) qb = GridLayout() qb.show() sys.exit(app.exec_())
Офлайн
> Подскажите в чем проблема
Что же тут непонятного? slotSaveNumber(2) у тебя возвращает None и следовательно слот у тебя будет None.
Так надо:
self.connect(button, QtCore.SIGNAL("clicked()"), lambda: slotSaveNumber(2))
Отредактировано Rodegast (Янв. 26, 2014 13:32:14)
Офлайн
Спасибо, получилось !
Офлайн