Название: QTreeWidget переименование элемента Отправлено: t34 от Декабрь 23, 2008, 10:35 Здравствуйте.
У меня возникла следующаа проблемма: есть QTreeWidget, на него кидаются item'ы, для которых сделано: Код мы можем изменить текст элемента покликав по нему, нажав F2 или сделав treeWidget->editItem(item); Вопрос: как сделать что бы при вводе пустой строки элемент не переименовывался? Название: Re: QTreeWidget переименование элемента Отправлено: ритт от Декабрь 23, 2008, 10:41 думаю, проще всего будет повесить на вьюху (или на определённый столбец) делегат, в котором в начале редактирования запоминать старое значение, а при передаче значения модели проверять на корректность и в случае некорректного значения подставлять вместо него ранее сохранённое.
Название: Re: QTreeWidget переименование элемента Отправлено: BRE от Декабрь 23, 2008, 12:55 Здравствуйте. Если использовать наследника от QTreeWidgetItem, то в нем можно переопределить метод:У меня возникла следующаа проблемма: есть QTreeWidget, на него кидаются item'ы, для которых сделано: Код мы можем изменить текст элемента покликав по нему, нажав F2 или сделав treeWidget->editItem(item); Вопрос: как сделать что бы при вводе пустой строки элемент не переименовывался? virtual void setData ( int column, int role, const QVariant & value ). И в нем отслеживать пустую строку. Но все таки лучше сразу сделать делегата, как предложил Константин. При необходимости будет легче перейти на view-model. Название: Re: QTreeWidget переименование элемента Отправлено: serg_hd от Февраль 08, 2010, 17:13 не знаю, сделал простым слотом:
Код п.с. скажите, пожалст, кто-нибудь что такое делегаты, зачем они? Примерчики бы... |