Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Динамическое добавление строк в таблицу Pyqt4 [RSS Feed]

#1 Дек. 20, 2010 19:15:03

reychal
От:
Зарегистрирован: 2010-12-14
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Динамическое добавление строк в таблицу Pyqt4

Подскажите, пожалуйста, как реализовать динамическое добавление строк в таблицу и обновление инфы в ячейках? В отдельном классе происходит манипуляция с данными через sqlite3. Нужно, чтобы при добавлении/изменении данных в БД, эти изменения отображать в таблице. Пока даже не представляю, что нужно смотреть. Таблица формируется через QtGui.QStandardItemModel .



Отредактировано (Дек. 21, 2010 09:07:08)

Офлайн

#2 Дек. 21, 2010 09:09:02

reychal
От:
Зарегистрирован: 2010-12-14
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Динамическое добавление строк в таблицу Pyqt4

Никто не знает?



Офлайн

#3 Дек. 21, 2010 09:15:06

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Динамическое добавление строк в таблицу Pyqt4

На ум приходит примерно 33 различных способа.
Покажите свой код, что делали и что не вышло.



Офлайн

#4 Дек. 21, 2010 09:22:46

reychal
От:
Зарегистрирован: 2010-12-14
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Динамическое добавление строк в таблицу Pyqt4

Есть несколько файлов в каждом из которых есть классы, которые выполняют определенные операции. В первом файле формируется главное окно и его содержимое, во втором дочерние окна, в остальных только действия без UI. При выполнении простой функции в другом файле, нужно чтобы обновилась таблица в главном окне. Без обновления все работает нормально. А как именно заставить таблицу обновится я не знаю, поэтому прошу помощи.
Функция создания таблицы:

    def upTable(self, current=None):
df = dbsql.dbSqlMain(self,self.bdname)
try:
self.retinf = df.selBd()
columns = len(self.retinf[0])
except IndexError as err:
print(err)
else:
rows = len(self.retinf)
row = 0
self.table.clear()
self.table.setRowCount(rows)
self.table.setColumnCount(columns)
self.table.setHorizontalHeaderLabels(['ID', и т.д.])
self.table.setAlternatingRowColors(True)
self.table.setEditTriggers(QtGui.QTableWidget.NoEditTriggers)
self.table.setSelectionBehavior(QtGui.QTableWidget.SelectRows)
self.table.setSelectionMode(QtGui.QTableWidget.SingleSelection)
selected = None
while row < rows:
column = 0
while column < columns:
item = QtGui.QTableWidgetItem(str(self.retinf[row][column]))
if current is not None and current == id(self.retinf[row][column]):
selected = item
self.table.setItem(row, column, item)
column+=1
row+=1
self.table.resizeColumnsToContents()



Отредактировано (Дек. 21, 2010 09:25:18)

Офлайн

#5 Дек. 21, 2010 14:52:25

reychal
От:
Зарегистрирован: 2010-12-14
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Динамическое добавление строк в таблицу Pyqt4

Хм… Я так понимаю, вопрос должен быть один из популярных, но понятной информации не нашла. в этом форуме всегда такая спячка или мне не повезло?



Офлайн

#6 Дек. 21, 2010 16:03:15

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Динамическое добавление строк в таблицу Pyqt4

Милая барышня, а что вы хотели?
Упоминаете модель. В приложенном огрызке метода, похоже, заполняете QTableWidget напрямую. Отчего, зачем - загадка.
Потом хотите заставить ваш виджет обновиться. Как вы это делаете и что не выходит - решительно неясно.

Просьба показать код (да-да, в таком виде чтобы его можно было запустить и увидеть всё самому) успехом не увенчалась.
Расспрашивать, а что же не выходит и как выглядит то, что уже сделано, - вытягивая информацию строчка за строчкой, - большого желания нет.

Нужно-то вам.



Офлайн

#7 Дек. 21, 2010 22:12:18

reychal
От:
Зарегистрирован: 2010-12-14
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Динамическое добавление строк в таблицу Pyqt4

Понятно. Спасибо за ответ. Сначала делала моделью, потом сразу виджет. Весь код ничего не даст. Я ведь не писала, что у меня есть ошибки в коде. Их нет и не может быть из-за отсутствия понятия как вообще это сделать. Ну НЕ ЗНАЮ я как это можно даже теоретически сделать. Вы профессионалы и не можете дать ответ по типу: для обновления нужны такие-то классы, методы; пример, исходник посмотреть там-то. Вы сами написали ,что есть 33 способа, вот и ткните хотя бы в один из них.



Отредактировано (Дек. 21, 2010 22:13:26)

Офлайн

#8 Дек. 22, 2010 06:39:41

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Динамическое добавление строк в таблицу Pyqt4

Хотите посмотреть исходники - вот вам: http://qt.gitorious.org/pyside/pyside-examples/trees/HEAD/examples/sql



Офлайн

#9 Дек. 22, 2010 07:12:39

reychal
От:
Зарегистрирован: 2010-12-14
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Динамическое добавление строк в таблицу Pyqt4

Спасибо большое за ссылку, Вы очень помогли.



Офлайн

#10 Дек. 22, 2010 09:41:35

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Динамическое добавление строк в таблицу Pyqt4

Кушайте на здоровье



Офлайн

  • Начало
  • » GUI
  • » Динамическое добавление строк в таблицу Pyqt4[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version