| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Python: Общие вопросы > помогите разобраться, вопрос интересный |
| Автор: Lunt 11.5.2012, 15:45 |
| мне нужно как то сделать так чтобы при нажатии мышки на элемент в древе слева, в таблице справа отобразился этот нажатый элемент. вот код древа и таблици(полностью рабочий) # -*- coding: cp1251 -*- ''' Created on 27.10.2011 @author: ALEX ''' import sys from PyQt4 import QtGui, QtCore class drevo(QtGui.QMainWindow): def __init__ (self, parent=None): QtGui.QMainWindow.__init__(self, parent) self.move(300, 300) tree = QtGui.QTreeWidget(self) self.cw = QtGui.QWidget(self) QtGui.QHBoxLayout(self.cw) self.setCentralWidget(self.cw) self.centralWidget().layout().addWidget(tree) tree.setColumnCount(2) тут я создал древо #заголовки 1 и 2 столбцов tree.headerItem().setData(0, QtCore.Qt.DisplayRole, QtCore.QVariant(u'1')) tree.headerItem().setData(1, QtCore.Qt.DisplayRole, QtCore.QVariant(u'2')) # заполнение дерева данными, верхний уровень: item = self.createItem(u'переславль', 'sity') tree.addTopLevelItem(item) item2 = self.createItem(u'ярославль', 'sity') tree.addTopLevelItem(item2) # заполнение дерева данными, второй уровень: item.addChild(self.createItem(u'1152', 'osnovan')) item2.addChild(self.createItem(u'основан 1221', '')) # заполнение дерева данными, третий уровень: item.child(0).addChild(self.createItem(u'долгорукий', 'kto osnoval')) item2.child(0).addChild(self.createItem(u'хw3з', '')) тут я создал таблицу self.qwq = QtGui.QTableWidget() # создаем табличный виджет self.centralWidget().layout().addWidget(self.qwq) # выложили виджет self.qwq.setRowCount(1) # задали кол-во строк self.qwq.setColumnCount(1) # столбцов #self.qwq.setColumnHidden(0,True) # спрятали первую колонку self.show() # показываем окно тут надо написать метод connect только я хз как... как я понял надо то место куда ты ткнеш мышкой в древе, чтоб автоматически отобразилось в таблице... например ткнул на ярославль - отобразился ярославль def createItem(self, first, second): item = QtGui.QTreeWidgetItem() item.setData(0, QtCore.Qt.DisplayRole, QtCore.QVariant(first)) item.setData(1, QtCore.Qt.DisplayRole, QtCore.QVariant(second)) return item if __name__ == "__main__": app = QtGui.QApplication(sys.argv) win = drevo() win.show() sys.exit(app.exec_()) |
| Автор: Ch0bits 11.5.2012, 18:43 |
| Аааа! Мои глаза! Где форматирование? |
| Автор: Lunt 11.5.2012, 18:56 |
| Ch0bits, извини я отредактировал, помоги пожалусто |
| Автор: Ch0bits 11.5.2012, 18:58 |
| Ты наверно заметил, что в редакторе сообщений есть кнопка "Код"? |
| Автор: Lunt 11.5.2012, 19:02 |
| я редко пользуюсь, так что строго не суди. подскажи как мне обратиться к элементу таблици и к элементу древа. Зная это я сам думаю напишу прогу... |