Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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
Аааа! Мои глаза! Где форматирование?  smile 

Автор: Lunt 11.5.2012, 18:56
Ch0bits,  извини я отредактировал, помоги пожалусто

Автор: Ch0bits 11.5.2012, 18:58
Ты наверно заметил, что в редакторе сообщений есть кнопка "Код"?

Автор: Lunt 11.5.2012, 19:02
я редко пользуюсь, так что строго не суди.
подскажи как мне обратиться к элементу таблици и к элементу древа. Зная это я сам думаю напишу прогу...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)