crossplatform.ru

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


  Ответ в Как задать размер для редактора в делегате?
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 27.7.2010, 14:35
  Тему разделил: В очередной раз о компоновщиках
Litkevich Yuriy Дата 27.7.2010, 11:01
 
Цитата(AntonH851 @ 27.7.2010, 14:51) *
editor->setGeometry(option.rect);
TypeEditor *ed = qobject_cast<TypeEditor *>(editor);
ed->edit->resize(option.rect.width(), option.rect.height());
надо что-нибудь одно, либо
editor->setGeometry(option.rect);
либо
ed->edit->resize(option.rect.width(), option.rect.height());

я использую только первый вариант
AntonH851 Дата 27.7.2010, 10:51
  Добрый день!
Есть делегат в котором в качестве редактора использую виджет с 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());
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 19.4.2024, 14:16