qtdemo Star Deletgate, Нонсенс |
Здравствуйте, гость ( Вход | Регистрация )
qtdemo Star Deletgate, Нонсенс |
ЙаМайскЫйПчОЛ |
24.5.2010, 13:32
Сообщение
#1
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
Товарищи, приветсвую Вас.
и Сразу к вопросу Если вы не поленитесь и откроете проект Star Delegate (демка) И закаментите в файле stardelegate.cpp строки 88 и 89 т.е. connect(editor, SIGNAL(editingFinished()), this, SLOT(commitAndCloseEditor())); перекомпилите и запустите, то наверное испытаете такой же шок, как и я... Программа все равно будет правильно работать... Более того, можете поиграться с этим сигналом и слотом, но в рамках данной программы они никогда не вызываються. И вот вопрос... какие механизмы обеспечивают правильное поведение Делегата и Редактора, и нахрена у товарищей из Qt написано что делегат работает через эту связку...??? Это не развлечения ради, а просто мой класс Редактора не работает так как должен, но об этом потом Сообщение отредактировал ЙаМайскЫйПчОЛ - 24.5.2010, 13:33 |
|
|
ЙаМайскЫйПчОЛ |
24.5.2010, 15:27
Сообщение
#2
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
Вооотттт....
Так когдаже вызываеться commit??? И зачем описаны mouseReleaseEvent У меня складываеться ощущение что они сами не знают зачем написали этот код Но мне SpinBox не подходит у меня свой виджет редактирования также как и StarEditor Я переопределил bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index); для делегата и в теле qDebug() << event; return QStyledItemDelegate::editorEvent(event, model, option, index); + StarDelegate(QWidget *parent = 0) : QStyledItemDelegate(parent) { connect(this, SIGNAL(commitData(QWidget *)), this, SLOT(commitMe(QWidget*))); } + private slots: void commitMe(QWidget *w){ qDebug() << "commit"; } на выходе оказалось что ............ QMouseEvent(MouseButtonRelease, 1, 0, 0) commit Сообщение отредактировал ЙаМайскЫйПчОЛ - 24.5.2010, 15:33 |
|
|
Текстовая версия | Сейчас: 22.12.2024, 8:01 |