Просто для полноты: пока набор значений не слишком велик, вы могли бы также просто построить строку с выражением, подобным
... WHERE tab.col = ? OR tab.col = ? OR tab.col = ?
, который вы могли бы затем перейти к prepare (), а затем использовать setXXX () в цикле для установки всех значений. Это выглядит yucky, но многие «большие» коммерческие системы обычно делают такие вещи до тех пор, пока они не достигнут ограничений, специфичных для БД, таких как 32 КБ (я думаю, это так) для операторов в Oracle.
Конечно, вы необходимо убедиться в том, что набор никогда не будет необоснованно большим или будет захват ошибок в том случае, если это будет.
pyqtSlot()
следует импортировать из PyQt4.QtCore
:
from PyQt4.QtCore import pyqtSlot
, его также можно использовать как @QtCore.pyqtSlot()
, поскольку вы уже импортируете QtCore
.
У вас есть сообщение об ошибке TypeError: native Qt signal is not callable
, так как слот clicked
должен быть подключен без круглых скобок:
button.clicked.connect([method reference or whatever])
Вы можете начать с простых примеров, которые вы можете найти в пакете PyQt4, например examples/widgets/tetrix.py
:
startButton = QtGui.QPushButton("&Start")
startButton.clicked.connect(self.board.start)
object.signal().connect(slot())
следует заменить на object.signal.connect(slot)