crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QTreeView : иконка перед текстом
Гость_microsofd_*
сообщение 10.6.2009, 14:32
Сообщение #1





Гости








    


хочется сделать следующее :

[+] [*] root
|
----- [*] element1
|
----- [*] element2

где [*] -иконка

class QTreeItemDelegate :public QItemDelegate
{
public:
    QTreeItemDelegate(void);
    ~QTreeItemDelegate(void);
    void paint (QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index )const
    {
                                ///как разместить иконку   (где взять координаты ) ?
        
        QItemDelegate::paint(painter,option,index );
    }
};
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 10.6.2009, 14:43
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Если тебе просто иконка нужна, а не произвольный рисунок, см. Qt::DecorationRole
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Sokoloff
  опции профиля:
сообщение 10.6.2009, 15:00
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 237
Регистрация: 1.4.2009
Из: Москва
Пользователь №: 654

Спасибо сказали: 50 раз(а)




Репутация:   11  


Вот кусок из моего проекта, правда на питоне, но, надеюсь идея будет ясна.
    # QAbstractItemModel

    def data(self, index, role):
        if not index.isValid():
            return QtCore.QVariant()


        if (role == QtCore.Qt.DisplayRole or role == QtCore.Qt.EditRole ):
            ...    

        elif role == QtCore.Qt.DecorationRole:
            if (index.column() == 0): return QtCore.QVariant(self.icon) # Где self.icon это QPixmap
                
        return QtCore.QVariant()
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_microsofd_*
сообщение 11.6.2009, 8:58
Сообщение #4





Гости








    


Спасибо,
действительно , иконка указывается в модели.

А теперь ещё один вопрос :
как поймать сигнал изменения выделенного итема в дереве:
т.е. у TreeView имеется куча сигналов (clicked, activated, ....), но ни один из них не посылается, при изменении выделенного итема
кнопками "вверх"/"вниз". Неужели в Qt это не предусмотрено? :blink:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 11.6.2009, 9:14
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(microsofd @ 11.6.2009, 9:58) *
А теперь ещё один вопрос :
как поймать сигнал изменения выделенного итема в дереве:
т.е. у TreeView имеется куча сигналов (clicked, activated, ....), но ни один из них не посылается, при изменении выделенного итема
кнопками "вверх"/"вниз". Неужели в Qt это не предусмотрено? :blink:

А ты посмотри на QItemSelectionModel.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.12.2024, 1:55