Ошибка нажатия кнопки таблицы Pyqt: (собственный сигнал Qt не может быть вызван) [duplicate]

Просто для полноты: пока набор значений не слишком велик, вы могли бы также просто построить строку с выражением, подобным

... WHERE tab.col = ? OR tab.col = ? OR tab.col = ?

, который вы могли бы затем перейти к prepare (), а затем использовать setXXX () в цикле для установки всех значений. Это выглядит yucky, но многие «большие» коммерческие системы обычно делают такие вещи до тех пор, пока они не достигнут ограничений, специфичных для БД, таких как 32 КБ (я думаю, это так) для операторов в Oracle.

Конечно, вы необходимо убедиться в том, что набор никогда не будет необоснованно большим или будет захват ошибок в том случае, если это будет.

3
задан approxiblue 10 October 2015 в 01:46
поделиться

2 ответа

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)
4
ответ дан Orest Hera 15 August 2018 в 18:41
поделиться
  • 1
    @ QtCore.pyqtSlot () исправил первую ошибку и удалил скобку с «щелкнули» на исправленный TypeError, я не могу поверить, что я пропустил это. Большое спасибо! – Xorgon 10 October 2015 в 02:02
  • 2
    Если использовать PyQt5 & quot; из PyQt5.QtCore import pyqtSlot & quot; – Anurag Singh 1 August 2018 в 08:39
  • 3
    – Lost Crotchet 31 August 2018 в 16:43

object.signal().connect(slot()) следует заменить на object.signal.connect(slot)

0
ответ дан Anurag Singh 15 August 2018 в 18:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: