Здравствуйте, у меня есть вопрос. Допустим есть такая таблица:
Код
mysql> select * from EnumerateGroups;
+----+---------+------------------+-----------+-------------+
| id | Root_id | name | aliasname | description |
+----+---------+------------------+-----------+-------------+
| 1 | 0 | parent_one | NULL | NULL |
| 2 | 0 | parent_two | NULL | NULL |
| 3 | 1 | child_one1 | NULL | NULL |
| 4 | 1 | child_one2 | NULL | NULL |
| 5 | 0 | parent_three | NULL | NULL |
| 6 | 5 | child_three1 | NULL | NULL |
| 7 | 4 | child_for_child1 | NULL | NULL |
| 8 | 4 | child_for_child2 | NULL | NULL |
+----+---------+------------------+-----------+-------------+
Нужно создать TreeView в котором отображалось бы что-то вроде:
Код
- parent_one
|--- child_one1
|--- child_one2
|------ child_for_child1
|------ child_for_child2
- parent_two
- parent_three
|--- child_three1
Ну то что мне на голову приходит это(на Питоне):
Код
def findItem(ident, model):
numRows = model.rowCount()
for row in xrange(numRows):
if int(model.index(row, 0).data().toString()) == ident:
return model.index(row, 0)
return None
self.tree = MyTreeView(self)
self.tree.setColumnCount(3)
data = QtSql.QSqlQuery("SELECT id, Root_id, name FROM EnumerateGroups", self.db)
while data.next():
parent = findItem(int(data.value(1).toString()), self.tree.model())
if parent != None:
item = QtGui.QTreeWidgetItem(self.tree.itemFromIndex(parent))
else:
item = QtGui.QTreeWidgetItem(self.tree)
item.setText(0, data.value(0).toString())
item.setText(1, data.value(1).toString())
item.setText(2, data.value(2).toString())
И этот код работает, но только если количество уровней не более 2х. Он бы и работал при любом количестве уровней если бы model.index(Х, 0) перемещалось не только по родителям но и по потомкам. Может кто подскажет как лучше сделать?
Ответ на:
комментарий
от Dr_ZLO
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Segmentation fault (C & Mysql) (2007)
- Форум sqlite3 left self-join, только наоборот (2023)
- Форум SQL Builder для Python: нужны советы (2019)
- Форум Segmentation fault (2009)
- Форум Выдержит ли SQLite нагрузку уровня linux.org.ru? (2022)
- Форум Подкорректируйте SQL-запрос (2015)
- Форум Куда пропадают пакеты? (2014)
- Форум Copy Paste в Иксах (2006)
- Форум QComboBox c множественным выбором (2020)
- Форум Python, urwid (TUI) и композитные виджеты (2019)