crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Как задать размер для редактора в делегате?
AntonH851
  опции профиля:
сообщение 27.7.2010, 10:51
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 20.2.2010
Из: Шебекино
Пользователь №: 1475

Спасибо сказали: 1 раз(а)




Репутация:   0  


Добрый день!
Есть делегат в котором в качестве редактора использую виджет с QLineEdit:
TypeEditor::TypeEditor(QWidget *parent)
    : QWidget(parent)
{
    edit = new QLineEdit(this);
    QIntValidator *iv = new QIntValidator(edit);
    edit->setValidator(iv);

    QHBoxLayout *layout = new QHBoxLayout;
    layout->setMargin(0);
    layout->setSpacing(0);
    layout->addWidget(edit);
    setLayout(layout);

    this->edit->installEventFilter(this);
}

Суть проблемы в том, что строки в таблице по высоте больше чем стандартный размер QLineEdit, и когда редактируешь ячейку, то получается что едит висит посередине ее(ячейки), что не очень красиво...
Пробовал делать так:
void PTypeDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option,
                                         const QModelIndex &index) const
{
    editor->setGeometry(option.rect);
    TypeEditor *ed = qobject_cast<TypeEditor *>(editor);
    ed->edit->resize(option.rect.width(), option.rect.height());
}

Но это не помогает.....

помогло ed->edit->setFixedHeight(option.rect.height());

Сообщение отредактировал AntonH851 - 27.7.2010, 11:00
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.4.2024, 15:29