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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: переопределить делегат  (Прочитано 3120 раз)
pro100skif
Гость
« : Июнь 17, 2014, 05:28 »

Доброго времени суток, необходимо запретить пользователю редактировать кое какие колонки в QTableView , полазил в инете нашел что самый простой способ это переопределить делегата.Создал новый cpp файл, прописал в нем
Код:
class NonEditTableColumnDelegate : public QItemDelegate
{
    Q_OBJECT
public:
    NonEditTableColumnDelegate(QObject * parent = 0) : QItemDelegate(parent) {}
    virtual QWidget * createEditor ( QWidget *, const QStyleOptionViewItem &,
                                     const QModelIndex &) const
    {
        return 0;
    }
};

потом в самой программе
Код:
NonEditTableColumnDelegate *delegate=new NonEditTableColumnDelegate(this);
    ui->sqlTable->setItemDelegateForColumn(0,delegate);

на что qt ругается как то так:
D:\QTprojects\mysqltry\new1.cpp:5: ошибка: undefined reference to `vtable for NonEditTableColumnDelegate'
collect2.exe:-1: ошибка: error: ld returned 1 exit status
и указывает на эту строку:
NonEditTableColumnDelegate(QObject * parent = 0) : QItemDelegate(parent) {}
Заранее спасибо за помощь
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Июнь 17, 2014, 06:43 »

Классы лучше создавать в h-файлах, а описывать их содержимое в срр Подмигивающий
Записан

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

Сообщений: 2921



Просмотр профиля
« Ответ #2 : Июнь 17, 2014, 07:19 »

Убери строку с Q_OBJECT.
Если производный от QObject класс не определяет новые сигналы/слоты и не использует собственные трансляции (tr),
то использовать данную строку необязательно.
Записан

Qt 5.11/4.8.7 (X11/Win)
pro100skif
Гость
« Ответ #3 : Июнь 17, 2014, 13:32 »

Убери строку с Q_OBJECT.
Если производный от QObject класс не определяет новые сигналы/слоты и не использует собственные трансляции (tr),
то использовать данную строку необязательно.
спасибо работает
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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