Russian Qt Forum
Сентябрь 30, 2024, 20:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTableWidget + свои делегаты = как задать колонку на readOnly?  (Прочитано 3868 раз)
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« : Февраль 18, 2013, 17:59 »

Привет. Есть таблица, в которой три колонки. В первой вывожу QCheckBox, во второй просто текст, в третей стоит делегат, который предоставляет QComboBox в режиме редактирования ячейки.
Суть в том, что вторую колонку (там где текст) нужно отображать только на чтение. Так как EditTriggers установлены. Если их убрать, то делегат в третьей колонке не работает.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Февраль 18, 2013, 18:06 »

Перегрузи QStyledItemDelegate::createEditor() который возвращает 0. Этот делегат установи для 2-й колонки.
Записан

Qt 5.11/4.8.7 (X11/Win)
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #2 : Февраль 19, 2013, 07:26 »

Делегат:
Код:
class ReadDelegate: public QItemDelegate
{
public:
    inline ReadDelegate(QObject * parent = 0):
        QItemDelegate(parent)
    {
    }

    inline QWidget *createEditor(QWidget*,
                                 const QStyleOptionViewItem&,
                                 const QModelIndex&) const
    {
        return 0;
    }
};
Записан

GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Февраль 19, 2013, 07:52 »

Ну вот, пришел gil9red и убил все бонусы QStyledItemDelegate.
Записан

Qt 5.11/4.8.7 (X11/Win)
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #4 : Февраль 19, 2013, 13:27 »

честно говоря так и удмал Улыбающийся
а вот второй вопрос, установил я делегат для первой колонки, в режиме редакторивания там чекбокс, а при отображение просто выводит текст "Да/Нет" в заивисимости от установленного значения.
Дело в том, что при появлении чекбокса при редактировании, под ним рисуется текст предыдущего значения. Как это побороть?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 23.