Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Sergey B. от Апрель 27, 2008, 12:11



Название: Рамка вокруг выделенного элемента (QListView)
Отправлено: Sergey B. от Апрель 27, 2008, 12:11
Добрый день,
сталкивался ли кто-нибудь и как с этим бороться, желательно без CSS.
В Assistant что-то не нашёл.
Хотелось бы чтобы элемент выделялся полностью, без рамки, отделяющей текст от иконки.
Что характерно, в Oxygen (kde4), всё нормально.

(Qt 4.4-rc1, VS 2008 Express, XP SP2; Kubuntu 8.04 )


Название: Re: Рамка вокруг выделенного элемента (QListView)
Отправлено: vfilatov от Май 12, 2008, 11:32
Привет!
Я сталкивался, меня это тоже напрягало. Никаких свойств на этот счёт я не нашёл, а изучение кода привело к решению отнаследоваться от QItemDelegate и переопределить виртуальную функцию drawFocus, просто оставив её пустой. Именно в ней рисуется эта рамка в делегате по умолчанию.


Название: Re: Рамка вокруг выделенного элемента (QListView)
Отправлено: SASA от Июнь 03, 2008, 18:44
Надо в QWidget::setFocusPolicy() выставить флаг Qt::NoFocus. Правда, перестанут работать события клавиатуры, например  Tab :(


Название: Re: Рамка вокруг выделенного элемента (QListView)
Отправлено: Red Devil от Июнь 05, 2008, 19:07
Лучше использовать метод vfilatov. Я именно таким способом еще в MFC делал.
А если без фокуса оставить - так это вообще ничего с ячейкой сделать нельзя будет.