crossplatform.ru

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


  Ответ в РЕШЕНО! Как установить фокус на Виджет в диалоговом окне редактирования записи
Введите ваше имя
Подтвердите код

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

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


Последние 10 сообщений [ в обратном порядке ]
mishabard Дата 18.7.2011, 10:08
  Решил задачу следующим образом, может кому пригодиться!
В конструкторе диалогового окна чтобы установить фокус выделенной ячейки на связанный с ней виджет делаем следующее:
....
QTableView * view;
....
    mapper = new QDataWidgetMapper(this);
    mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
    mapper->setModel(model);
    mapper->setItemDelegate(new QSqlRelationalDelegate(this));
    mapper->addMapping(pManager,10);
   ......
    mapper->addMapping(pPartner, 11);
......

QWidget * curWidget=mapper->mappedWidgetAt(view->currentIndex().column());
    if (curWidget)
    curWidget->setFocus();
    else
        pManager->setFocus();//фокус по умолчанию, если не найдено ни одного связанного виджета
Litkevich Yuriy Дата 15.7.2011, 19:12
  за выделение ячеек представления отвечает МодельВыделения, у представления её можно получить с помощью QAbstractItemView::selectionModel ().
Через эту модель много полезного можно узнать (обычно она возвращает модельный индекс). Зная модельный индекс можно установить текущий виджет (я так понимаю, что это и будет фокус), с помощью QDataWidgetMapper::setCurrentModelIndex()
mishabard Дата 15.7.2011, 11:26
  Есть диалоговое окно для редактирования таблицы, создается динамически. На нем размещены виджеты и связаны с полями таблицы через QDataWidgetMapper.
Вопрос: как узнать из функции какой виджет в диалоговом окне связан с определенным номером колонки в таблице?
Цель: установить фокус редактирования на нужный виджет при открывании диалогового окна, т.е. на тот, который связан с колонкой в таблице, по которой шелкунл пользователь.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 9:40