Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2015, 12:05   #1
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию Qt5 размер делегата

В качестве делегата редактора использую QCalendarWidget.
Не могу понять как мне установить его размер, что бы он отображался полностью и чуть ниже пункта списка (QListView)
Код:
#include "datedelegat.h"

DateDelegat::DateDelegat(QObject *parent) :
    QStyledItemDelegate(parent)
{
}

DateDelegat::~DateDelegat()
{
}

// Создает виджет редактора
QWidget *DateDelegat::createEditor(QWidget *parent, const QStyleOptionViewItem &option,
                                   const QModelIndex &index) const
{
    QCalendarWidget *editor = new QCalendarWidget(parent);
    editor->setGridVisible(true);
    editor->setAutoFillBackground(true);

    return editor;
}

// Передает значение от модели в редактор
void DateDelegat::setEditorData(QWidget *editor, const QModelIndex &index) const
{
    QCalendarWidget *calendar = static_cast<QCalendarWidget *>(editor);
    calendar->setSelectedDate(index.data().toDate());
}

// Передает значение от редактора в модель
void DateDelegat::setModelData(QWidget *editor, QAbstractItemModel *model,
                               const QModelIndex &index) const
{
    QCalendarWidget *calendar = static_cast<QCalendarWidget *>(editor);
    model->setData(index, calendar->selectedDate());
}

// Задает геометрию редактора
void DateDelegat::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option,
                                       const QModelIndex &index) const
{
    //editor->setGeometry(option.rect);
    //int w = editor->width();
    //int h = editor->height();
    editor->setGeometry(150, 50, 250, 150);
}

// Отрисовывает ячейку эл-та
void DateDelegat::paint(QPainter *painter, const QStyleOptionViewItem &option,
                        const QModelIndex &index) const
{
    QStyledItemDelegate::paint(painter, option, index);
}
видимо все должно тут происходить, не смейтесь, толькьо
Код:
// Задает геометрию редактора
void DateDelegat::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option,
                                       const QModelIndex &index) const
{
    //editor->setGeometry(option.rect);
    //int w = editor->width();
    //int h = editor->height();
    editor->setGeometry(150, 50, 250, 150);
}
SAMOUCHKA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenGL4.3 в Qt5.1 - подключение функций wf778899 Qt и кроссплатформенное программирование С/С++ 5 13.03.2015 23:42
padeg.dll и Qt5 Mr_ViK Общие вопросы C/C++ 0 07.04.2014 16:18
Qt5.1 не собирается проект SAMOUCHKA Qt и кроссплатформенное программирование С/С++ 2 18.08.2013 13:39
Перевод с QT5 в Delphi arxlex Общие вопросы Delphi 8 30.03.2012 16:08
Перевод с С++(QT5) в Delphi arxlex Помощь студентам 0 29.03.2012 10:15