Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: onlik от Ноябрь 29, 2009, 22:39



Название: QTableView, фокус вокруг ячейки
Отправлено: onlik от Ноябрь 29, 2009, 22:39
Можно ли как-то стандартными средствами убрать фокус вокруг выбранной ячейки (штриховой контур, когда выбрана какая-то ячейка)?


Название: Re: QTableView, фокус вокруг ячейки
Отправлено: sendevent от Ноябрь 30, 2009, 04:20
pTableView->setFocusPolicy( Qt::NoFocus (http://doc.trolltech.com/4.5/qt.html#FocusPolicy-enum) );


Название: Re: QTableView, фокус вокруг ячейки
Отправлено: onlik от Ноябрь 30, 2009, 16:28
не подходит, тогда получается что виджет никогда не получит фокус, т.е. я буду клацать как и раньше, просто отображенние виджета будет такое, что на нем нет фокуса... :( а мне нужно что бы просто вокруг ячейки не было штриховых полос :)


Название: Re: QTableView, фокус вокруг ячейки
Отправлено: spectre71 от Ноябрь 30, 2009, 19:46
Можно ли как-то стандартными средствами убрать фокус вокруг выбранной ячейки (штриховой контур, когда выбрана какая-то ячейка)?

Насчет простого способа не знаю, но можно через свой простой делегат:

Код
C++ (Qt)
class MyDelegate : public QStyledItemDelegate
{
   Q_OBJECT
public:
 void paint(QPainter* painter, const QStyleOptionViewItem &option, const QModelIndex &index) const {
   QStyleOptionViewItemV4 opt = option;
   initStyleOption(&opt, index);
   opt.state &= ~QStyle::State_HasFocus;
   QStyledItemDelegate::paint(painter, opt, index);
 }
};
 
 


Название: Re: QTableView, фокус вокруг ячейки
Отправлено: lit-uriy от Ноябрь 30, 2009, 21:12
Если наследоватся от QItemDelegate, то можно переопределить метод QItemDelegate::drawFocus


Название: Re: QTableView, фокус вокруг ячейки
Отправлено: onlik от Декабрь 01, 2009, 03:11
Спасибо большое, разобрался!