Найти - Пользователи
Полная версия: Не могу разобраться с заполнением таблицы PyQt5
Начало » Python для новичков » Не могу разобраться с заполнением таблицы PyQt5
1
Maxem
Всем доброго дня, проблема с заполнением таблицы.
   def getBases(self):
        data = {'Base1':[11,12,13],
                'Base2':[21,22,23],
                'Base3':[31,32,33],
                'Base4':[41,42,43],}
        return data
    def pushButton_fillTable(self):
        data = self.getBases()
        horHeaders = []
        for n, key in enumerate(sorted(data.keys())):
            horHeaders.append(key)
            for m, item in enumerate(data[key]):
                newitem = QTableWidget(item)
                self.tableWidget.setItem(m, n, newitem)
        self.tableWidget.setHorisontalHeaderLabels(horHeaders)
PyQt5, Python 3.4. Тыкните где не то. Заранее спасибо.
Rodegast
У self.tableWidget надо установить количество столбцов и колонок при помощи методов setRowCount и setColumnCount
Maxem
   def getBases(self):
        data = {'Base1':[11,12,13],
                'Base2':[21,22,23],
                'Base3':[31,32,33],
                'Base4':[41,42,43],}
        return data
    def pushButton_fillTable(self):
        data = self.getBases()
        self.tableWidget.setRowCount(3)
        self.tableWidget.setColumnCount(4)
        horHeaders = []
        for n, key in enumerate(sorted(data.keys())):
            horHeaders.append(key)
            for m, item in enumerate(data[key]):
                newitem = QTableWidget(item)
                self.tableWidget.setItem(m, n, newitem)
        self.tableWidget.setHorisontalHeaderLabels(horHeaders)
так тоже не работает
Maxem
Вот так заполняет заголовки и не ругается, но ячейки пустые

    def getBases(self):
        data = {'Base1':[11,12,13,14],
                'Base2':[21,22,23,24],
                'Base3':[31,32,33,34],
                'Base4':[41,42,43,44],}
        return data
    def pushButton_fillTable(self):
        data = self.getBases()
        self.tableWidget.setRowCount(4)
        self.tableWidget.setColumnCount(4)
        horHeaders = []
        for n, key in enumerate(sorted(data.keys())):
            horHeaders.append(key)
            for m, item in enumerate(data[key]):
                newitem = QTableWidgetItem()
                self.tableWidget.setItem(m, n, newitem)
        self.tableWidget.setHorizontalHeaderLabels(horHeaders)
Ничего не понимаю….
Rodegast
newitem = QTableWidgetItem()
self.tableWidget.setItem(m, n, newitem)
self.tableWidget.item(m, n).setText(item)
Maxem

Rodegast
newitem = QTableWidgetItem()
self.tableWidget.setItem(m, n, newitem)
self.tableWidget.item(m, n).setText(item)

не работает
пробовал
a = self.tableWidget.item(1,2)
a.setText("12")

тоже не пашет
Maxem
Rodegast, спасибо за участие.
Вот так пашет!
def getBases(self):
        data = {'Base1':[11,12,13,14],
                'Base2':[21,22,23,24],
                'Base3':[31,32,33,34],
                'Base4':[41,42,43,44],}
        return data
    def pushButton_fillTable(self):
        data = self.getBases()
        self.tableWidget.setRowCount(4)
        self.tableWidget.setColumnCount(4)
        # horHeaders = ['111','222','333','444']
        horHeaders = []
        for n, key in enumerate(sorted(data.keys())):
            horHeaders.append(key)
            for m, item in enumerate(data[key]):
                newitem = QTableWidgetItem()
                self.tableWidget.setItem(m, n, newitem)
                newitem.setText(str(item))
        self.tableWidget.setHorizontalHeaderLabels(horHeaders)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB