![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
kunashir |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 10.3.2011 Пользователь №: 2485 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
День добрый!
Потребовалось использовать такой делегат: ну сделал свой класс, наследник от QFrame, на нем разместил Layout, QLineEdit и QPushButton. В делегате этот класс использовал в качестве редактора - все вроде отлично, при начале редактирования ячейки QTableView появляется QLineEdit и QPushButton - но если сразу попытаться нажать на кнопку, редактирования прекращается и редактор закрывается, а когда сперва клацнуть по QLineEdit, то потом можно спокойно нажимать кнопку и закрытия редактора не происходит. Собственно как сделать так чтобы сразу можно было жать на кнопку? В идеале должно быть как при использовании QSpinBox в делегате - там то кнопки сразу можно щелкать. Класс виджета: Раскрывающийся текст
Делегат: Раскрывающийся текст
|
|
|
PAFOS |
![]()
Сообщение
#2
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
попробуй в методе createEditor дать QLineEdit фокус ввода (метод void QWidget::setFocus ( Qt::FocusReason reason ))
или в классе CEditLineButton переопредели метод focusInEvent(), где дай фокус строке ввода. Получается, что при клацании на ячейку в представлении, создается делегат и ему сразу же кидается фокус ввода. В данном случае мы попадем в метод CEditLineButton::focusInEvent() и передадим этот фокус строке ввода Сообщение отредактировал PAFOS - 16.3.2011, 17:55 |
|
|
kunashir |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 10.3.2011 Пользователь №: 2485 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
PAFOS, спасибо за совет!
Наше следующее решение http://labs.qt.nokia.com/2007/06/06/lineed...a-clear-button/ кнопка в поле ввода. Сам изначально хотел сделать так, но у меня текст подлезал под кнопку, а по ссылки все уже решено. Правда там кнопка используется для отчистки поля, но повесить на нее свое действие не сложно. |
|
|
Гость_software developer_* |
![]()
Сообщение
#4
|
Гости ![]() |
Если в методе делегата QStyledItemDelegate::createEditor() для созданного виджета вызвать Qwidget::setFocusPolicy(Qt::StrongFocus), то все будет работать как надо.
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 11.3.2025, 2:49 |