У меня есть скрипт, который возвращает данные в формате dict внутри списка. Таким образом, мой список data [] содержит следующие данные
[['https://www.impasd.com.au/', 'https://www.impasd.com.au/who-we-are/'],['697559', '459048'], ['Full Service', 'Agency Partner']]
Я хотел бы отобразить эти данные внутри таблицы в PyQt5 TableView, которую я определил как Folow. Обновления данных работают, поэтому я хотел продолжать обновлять таблицу по мере обновления данных.
Теперь у меня есть PyQt5 windows, который выглядит как показано ниже. Большая белая секция определяется как TabelView ![enter image description here](https://i.stack.imgur.com/Jrvog.png)
Мой основной код PyQt5 - main.py
class Ui_MainWindow(QtWidgets.QMainWindow):
def __init__(self) :
super().__init__()
self.table = QtWidgets.QTableView()
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1327, 901)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.tableView = QtWidgets.QTableView(self.centralwidget)
self.tableView.setGeometry(QtCore.QRect(0, 0, 1331, 851))
self.tableView.setObjectName("tableView")
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
data = [['https://www.impasd.com.au/', 'https://www.impasd.com.au/who-we-are/'], ['697559', '459048'], ['Full Service', 'Agency Partner']]
self.model = TableModel( data )
self.table.setModel( self.model )
self.setCentralWidget( self.table )
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Когда процесс запускается, мои данные доступны в основной класс, в котором я также определил модель
class TableModel(QtCore.QAbstractTableModel):
def __init__(self, data):
super(TableModel, self).__init__()
self._data = data
print(self._data)
def data(self, index, role):
if role == Qt.DisplayRole:
# See below for the nested-list data structure.
# .row() indexes into the outer list,
# .column() indexes into the sub-list
return self._data[index.row()][index.column()]
def rowCount(self, index):
# The length of the outer list.
return len(self._data)
def columnCount(self, index):
# The following takes the first sub-list, and returns
# the length (only works if all rows are an equal length)
return len(self._data[0])
и таблица не отображается. Что я могу делать не так?
---- ОБНОВЛЕНИЕ ----
Теперь я преобразовал свои результаты [] в список списков, поэтому вопрос немного изменился. «Анализ списка отправленных сигналов, содержащего LIST внутри PyQt5 Tableview»
Я также добился некоторого прогресса за последние несколько часов, поэтому окно срабатывает, и я не получаю сообщение об ошибке, и программа завершает работу с код выхода 0, а таблица пуста?