QTableView zeigt keine Daten aus Datenbank an
Verfasst: Sonntag 6. März 2022, 11:22
Hi,
ich habe mit dem QtDesigner ein TableView erzeugt und möchte darin die Daten aus einer Datenbank anzeigen sobald ein Button geklickt wird.
Sobald ich den Code ausführe und den Button klicke erscheint folgende Fehlermeldung:
>>
self.viewtable.setRowCount(0)
AttributeError: 'PySide6.QtWidgets.QTableView' object has no attribute 'setRowCount'
<<
Folgenden Code verwende ich dafür:
Die Fehlermeldung sagt mir das Pyside6 ein derartiges Attribut "setRowCount" nicht mehr verwendet, ich vermute das war ein Attribut vom alten Pyside2.
Kann mir jemand sagen was das neue Attribut dazu lautet? Ich finde es mit Google einfach nicht. Vielen Dank.
Gruß Mars82
ich habe mit dem QtDesigner ein TableView erzeugt und möchte darin die Daten aus einer Datenbank anzeigen sobald ein Button geklickt wird.
Sobald ich den Code ausführe und den Button klicke erscheint folgende Fehlermeldung:
>>
self.viewtable.setRowCount(0)
AttributeError: 'PySide6.QtWidgets.QTableView' object has no attribute 'setRowCount'
<<
Folgenden Code verwende ich dafür:
Code: Alles auswählen
import sqlite3
from PySide6.QtWidgets import QApplication, QWidget, QTableWidget
from PySide6.QtWidgets import QMainWindow
from TestGui import Ui_MainWindow
class Frm_main(QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.bt_aktualisieren.clicked.connect(self.aktualisieren)
def aktualisieren(self):
connection = sqlite3.connect("personendaten.db")
cursor = connection.cursor()
sql =("SELECT name, adresse, alter, beruf, auto, land wo, wann FROM personen")
result= connection.execute(sql)
self.viewtable.setRowCount(0)
for row_number, row_data in enumerate(result):
self.viewtable.insertRow(row_number)
for column_number, data in enumerate(row_data):
self.viewtable.setItem(row_number, column_number, QWidget.QTableWidgetItem(str(data)))
connection.close()
def ende(self):
frm_main.destroy()
Kann mir jemand sagen was das neue Attribut dazu lautet? Ich finde es mit Google einfach nicht. Vielen Dank.
Gruß Mars82