Название: Model-view, делегат по умолч.: QLineEdit не инициализируется значением из view.. Отправлено: Cyrax от Январь 10, 2008, 11:00 Почему в model-view делегат по умолчанию, создавающий редактор QLineEdit при редактировании полей представления QTableView, не инициализирует себя значением из соответствующей ячейки представления ?
Это глюк или так и должно быть ? Название: Re: Model-view, делегат по умолч.: QLineEdit не инициализируется значением из view.. Отправлено: Mikhail от Январь 10, 2008, 12:15 Почему в model-view делегат по умолчанию, создавающий редактор QLineEdit при редактировании полей представления QTableView, не инициализирует себя значением из соответствующей ячейки представления ? Это глюк или так и должно быть ? Что то новое - делегат по умолчанию. Это не глюк а нежелание читать документацию. Посмотри пример $(QTDIR)/examples/itemviews/spinboxdelegate и поймешь как это работает. Делегата надо бы создать и после этого будет работать. Название: Re: Model-view, делегат по умолч.: QLineEdit не инициализируется значением из view.. Отправлено: Racheengel от Январь 10, 2008, 13:37 Стоп, создавать ничего не надо.
По умолчанию все отлично работает... Какая Qt и как model-view создается в приложении? Название: Re: Model-view, делегат по умолч.: QLineEdit не инициализируется значением из view.. Отправлено: Cyrax от Январь 10, 2008, 16:17 Именно. Всё должно работать по умолчанию.
1. У меня сейчас при двойном клике появляется пустой QLineEdit. 2. После редактирования текст в представление (в ячейку) не передаётся. Qt 4.3.1. Цитировать this->FAPValuesModel = new FAParamValuesModel(this->FAPManager, this); ui.FAPValuesView->setModel(this->FAPValuesModel); ui.FAPValuesView->setAlternatingRowColors(true); ui.FAPValuesView->resizeColumnsToContents(); ui.FAPValuesView->resizeRowsToContents(); Модель FAParamValuesModel - моя. Никаких своих делегатов не устанавливаю... Название: Re: Model-view, делегат по умолч.: QLineEdit не инициализируется значением из view.. Отправлено: Mikhail от Январь 10, 2008, 20:04 Именно. Всё должно работать по умолчанию. 1. У меня сейчас при двойном клике появляется пустой QLineEdit. 2. После редактирования текст в представление (в ячейку) не передаётся. Qt 4.3.1. Цитировать this->FAPValuesModel = new FAParamValuesModel(this->FAPManager, this); ui.FAPValuesView->setModel(this->FAPValuesModel); ui.FAPValuesView->setAlternatingRowColors(true); ui.FAPValuesView->resizeColumnsToContents(); ui.FAPValuesView->resizeRowsToContents(); Модель FAParamValuesModel - моя. Никаких своих делегатов не устанавливаю... Согласен по умолчанию все правильно работает, если правильно создана модель( в данном случае - FAPValuesModel ). А в этом у меня большие сомнения. Что то напутал с реализацией функций data и setData. Немного поправленный пример $(QTDIR)/examples/itemviews/spinboxdelegate работает на ура. Правленый main.cpp: /**************************************************************************** ** ** Copyright (C) 2004-2007 Trolltech ASA. All rights reserved. ** ** This file is part of the example classes of the Qt Toolkit. ** ** Licensees holding a valid Qt License Agreement may use this file in ** accordance with the rights, responsibilities and obligations ** contained therein. Please consult your licensing agreement or ** contact sales@trolltech.com if any conditions of this licensing ** agreement are not clear to you. ** ** Further information about Qt licensing is available at: ** http://www.trolltech.com/products/qt/licensing.html or by ** contacting info@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ /* main.cpp A simple example that shows how a view can use a custom delegate to edit data obtained from a model. */ #include <QApplication> #include <QHeaderView> #include <QItemSelectionModel> #include <QStandardItemModel> #include <QTableView> #include "delegate.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); QStandardItemModel model(4, 2); QTableView tableView; tableView.setModel(&model); // SpinBoxDelegate delegate; // tableView.setItemDelegate(&delegate); for (int row = 0; row < 4; ++row) { for (int column = 0; column < 2; ++column) { QModelIndex index = model.index(row, column, QModelIndex()); model.setData(index, QVariant(QString::number((row+1) * (column+1)) + "A")); } } tableView.setWindowTitle(QObject::tr("Spin Box Delegate")); tableView.show(); return app.exec(); } Название: Re: Model-view, делегат по умолч.: QLineEdit не инициализируется значением из view.. Отправлено: Cyrax от Январь 10, 2008, 22:00 Блин, всё верно. У меня в data и setData роль Qt::EditRole не обрабатывалась (возвращался QVariant())))
Название: Re: Model-view, делегат по умолч.: QLineEdit не инициализируется значением из view.. Отправлено: Mikhail от Январь 10, 2008, 22:12 Блин, всё верно. У меня в data и setData роль Qt::EditRole не обрабатывалась (возвращался QVariant()))) Успехов в чтении ассистента. И все у тебя будет хорошо Название: Re: Model-view, делегат по умолч.: QLineEdit не инициализируется значением из view.. Отправлено: Cyrax от Январь 10, 2008, 23:29 Цитировать Успехов в чтении ассистента. И все у тебя будет хорошо На форуме быстрее...А хорошо у меня будет только через 1,5 месяца, когда будут 2 вещи: время и деньги... Название: Re: Model-view, делегат по умолч.: QLineEdit не инициализируется значением из view.. Отправлено: ритт от Январь 12, 2008, 22:25 основное предназначение форума - помогать раработчикам в сложных ситуациях
нежелание читать документацию - _не_ сложная ситуация, а банальная лень! советую предварительно читать доки по теме перед тем, как писать очередной пост... Название: Re: Model-view, делегат по умолч.: QLineEdit не инициализируется значением из view.. Отправлено: Mikhail от Январь 12, 2008, 22:30 основное предназначение форума - помогать раработчикам в сложных ситуациях нежелание читать документацию - _не_ сложная ситуация, а банальная лень! советую предварительно читать доки по теме перед тем, как писать очередной пост... Хорошо подмечено. Поддерживаю. Название: Re: Model-view, делегат по умолч.: QLineEdit не инициализируется значением из view.. Отправлено: pastor от Январь 12, 2008, 22:31 основное предназначение форума - помогать раработчикам в сложных ситуациях нежелание читать документацию - _не_ сложная ситуация, а банальная лень! советую предварительно читать доки по теме перед тем, как писать очередной пост... +1 |