Название: QComboBox - текст айтемов разными цветами Отправлено: once_again_abc от Сентябрь 19, 2011, 09:37 как это можно сделать самым простым способом?
Название: Re: QComboBox - текст айтемов разными цветами Отправлено: BRE от Сентябрь 19, 2011, 09:38 как это можно сделать самым простым способом? Делагатом.Название: Re: QComboBox - текст айтемов разными цветами Отправлено: once_again_abc от Сентябрь 19, 2011, 09:47 как это можно сделать самым простым способом? Делагатом.зашибись ответ, очень помогает новичку ;D так торопились, что даже ошибку в слове сделали =))) Название: Re: QComboBox - текст айтемов разными цветами Отправлено: BRE от Сентябрь 19, 2011, 09:56 зашибись ответ, очень помогает новичку ;D так торопились, что даже ошибку в слове сделали =))) Я тебе направление показал. :)Посмотри примеры, почитай про QItemDelegate. Или можно в самой моделе обрабатывать роль Qt::TextColorRole. Так понятней. ::) Название: Re: QComboBox - текст айтемов разными цветами Отправлено: GreatSnake от Сентябрь 19, 2011, 10:11 Можно и без делегатов:
Код
Название: Re: QComboBox - текст айтемов разными цветами Отправлено: once_again_abc от Сентябрь 19, 2011, 10:31 что-то не работает у меня последний вариант.
в конструкторе родителя-виджета создаю динамически CheckBoxList( QWidget *widget ) : QComboBox(widget) затем 32 раза addItem в обработчике CheckBoxList::paintEvent(QPaintEvent *) делаю так: Код:
ПС. что такое модель/данные в кьюте пока не знаю, сегодня только начну изучать эту тему так что прошу не пугать меня сейчас этими словами =) Название: Re: QComboBox - текст айтемов разными цветами Отправлено: GreatSnake от Сентябрь 19, 2011, 10:38 Цитировать что-то не работает у меня последний вариант. Что значит не работает? Это 100% работающий пример.Цитировать ПС. что такое модель/данные в кьюте пока не знаю, сегодня только начну изучать эту тему так что прошу не пугать меня сейчас этими словами =) Так вот возьми и научись сначала, чтобы не писать такие глупости.Название: Re: QComboBox - текст айтемов разными цветами Отправлено: once_again_abc от Сентябрь 19, 2011, 10:45 Так вот возьми и научись сначала, чтобы не писать такие глупости. вот эта фраза и есть самая настоящая глупость. Название: Re: QComboBox - текст айтемов разными цветами Отправлено: GreatSnake от Сентябрь 19, 2011, 10:52 Так вот возьми и научись сначала, чтобы не писать такие глупости. вот эта фраза и есть самая настоящая глупость. Чтобы говорить здесь о глупости, надо хотя бы немного иметь представление о чём идёт речь. Меняя данные в модели данных ниспадающего списка в методе отрисовки комбобокса ты делаешь такую глупость, что даже не смешно... Название: Re: QComboBox - текст айтемов разными цветами Отправлено: once_again_abc от Сентябрь 19, 2011, 11:19 Так вот возьми и научись сначала, чтобы не писать такие глупости. вот эта фраза и есть самая настоящая глупость. Чтобы говорить здесь о глупости, надо хотя бы немного иметь представление о чём идёт речь. Меняя данные в модели данных ниспадающего списка в методе отрисовки комбобокса ты делаешь такую глупость, что даже не смешно... мне самому не смешно, поэтому я и задаю здесь вопросы, для кого-то возможно глупые и смешные. на изучение делегатов/моделей уйдет время, а я надеялся получить здесь решение, которое я смогу использовать прямо сейчас. если бы я уже знал что такое делегаты и как использовать модели для кастомизации кьютишных элементов то меня бы здесь не было с такими вопросами. очевидно. Название: Re: QComboBox - текст айтемов разными цветами Отправлено: GreatSnake от Сентябрь 19, 2011, 11:24 Я тебе дал 100% работающий пример. В чём проблемы?
Зачем ты в paintEvent() делаешь установку цвета текста ??? Это нужно делать хотя бы в конструкторе. Хотя мне непонятно зачем ты создаёшь свой класс. Название: Re: QComboBox - текст айтемов разными цветами Отправлено: Rem Norton от Сентябрь 19, 2011, 11:34 2 once_again_abc:
1. Если решил использовать Qt, то лучше сразу забудь все, что знал о MFC, Delphi и т.д. Тут все по-человечески сделано :) 2. GreatSnake дал 100% рабочий код, не требующий изменений. Ctrl+C, Ctrl+V и все. 3. Когда задаешь вопрос, слушай ответ. Название: Re: QComboBox - текст айтемов разными цветами Отправлено: Странник от Сентябрь 19, 2011, 12:39 есть вопрос в тему. как изменить цвет фона элемента в выпадающем списке QComboBox мне понятно (рис. 1). но цвет фона текущего элемента остается по умолчанию (рис. 2). как бы увязать их поизящнее?
Название: Re: QComboBox - текст айтемов разными цветами Отправлено: Rem Norton от Сентябрь 19, 2011, 12:44 Это делается через styleSheet непосредственно виджета, но я, пардон, не помню точно как.
Название: Re: QComboBox - текст айтемов разными цветами Отправлено: Странник от Сентябрь 19, 2011, 13:00 Это делается через styleSheet непосредственно виджета, но я, пардон, не помню точно как. я помню = ) но тайно надеюсь, что есть решение лучше, чем по сигналу currentIndexChanged менять stylesheet для виджета в зависимости от BackgroundRole текущего элемента..Название: Re: QComboBox - текст айтемов разными цветами Отправлено: GreatSnake от Сентябрь 19, 2011, 13:13 Код
|