Python 向表小部件添加信息时出现问题
我正试图将SQLite表上的信息添加到表小部件中 这就是我的SQL表:Python 向表小部件添加信息时出现问题,python,sqlite,pyqt,Python,Sqlite,Pyqt,我正试图将SQLite表上的信息添加到表小部件中 这就是我的SQL表: 我的表格小部件: 方法代码: 如果self.ui.btn\u jugadores.clicked.connect(lambda:self.ui.pila\u de\u paginas.setCurrentWidget(self.ui.pg\u jugadores)):self.mostrar\u jugadores() 这就是结果: 当我执行它的时候 我不知道为什么数字没有出现在表格小部件中。您的第一段代码没有任何意义。
我的表格小部件:
方法代码:
如果self.ui.btn\u jugadores.clicked.connect(lambda:self.ui.pila\u de\u paginas.setCurrentWidget(self.ui.pg\u jugadores)):self.mostrar\u jugadores()
这就是结果:当我执行它的时候
我不知道为什么数字没有出现在表格小部件中。您的第一段代码没有任何意义。为什么要对信号连接执行
if
语句?因为我想做的是,如果我按下该页面的按钮,我想更新该表。你明白我的意思吗?这正是重点:执行if信号.connect(…):
是毫无意义的,因为它总是在if语句中执行块:你在那里做的是检查函数的返回值(connect
)。在这种情况下,如果为True,则与相同:…
。如果您想在单击时调用mostrar\u jugadores
,那么只需创建另一个连接:self.ui.btn\u jugadores.clicked.connect(self.mostrar\u jugadores)
。但我们所讨论的问题是,这些数字没有出现在表中。如果问题出在If中,表将是空的。你不明白。我不是指你的实际问题,我是说,如果
块是完全不必要的(而且概念上是错误的):你没有将鼠标点击连接到mostrar\u jugadores
,而且在你的代码部分甚至没有调用该函数,对于if语句,as信号连接不会返回被认为是正的值。也就是说,如果您的值在数据库中存储为整数,则不能像那样使用构造函数;您可以使用QTableWidgetItem(str(apartado))
或使用celda.setData(Qt.DisplayRole,apartado)将值添加为DisplayRole
。
def mostrar_jugadores(self):
try:
cursor = conectarse_bbdd_jugadores()
consulta = ''' SELECT * FROM jugadores'''
ejecucion = cursor.execute(consulta).fetchall()
if len(ejecucion) > 0:
fila = 0
for e in ejecucion:
columna = 0
for apartado in e:
celda = QTableWidgetItem(apartado)
self.ui.tabla_jgds.setItem(fila, columna, celda)
columna += 1
print(apartado)
fila += 1
else:
QMessageBox.setText('No hay registros en la tabla de jugadores')
QMessageBox.setIcon(QMessageBox.warning)
QMessageBox.exec_()
except Error as error:
QMessageBox.setText('No se ha podido ejecutar la sentencia')
QMessageBox.setIcon(QMessageBox.warning)
QMessageBox.exec_()