Russian Qt Forum
Ноябрь 26, 2024, 03:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QDataWidgetMapper + QStandardItemModel + MyWidget: какие МЕТОДЫ переопределить?  (Прочитано 1729 раз)
burevestnik
Гость
« : Апрель 24, 2013, 11:15 »

Ребята, Какие методы у наследника QWidget нужно еще переопределить, чтобы он через QDataWidgetMapper  посылал данные QString в QStandardItemModel ?
проблема в том, что при потере фокуса, MyWidget  не пишет в модель, а мне бы надо это, в стандартных это как-то сделано... что я делаю не так?

Код:
class MyWidget : public QWidget
{
    Q_OBJECT
    Q_PROPERTY(QString fileName READ getFileName WRITE setFileName)
public:
    explicit MyWidget (QWidget *parent = 0);
    QPushButton* dialogButton;
    MyLineEdit* lineEdit;
    QGridLayout* gridLayout;
    QString fileName;

public slots:
    QString getFileName();
    void setFileName(const QString);
};

маппирую:
Код:
...
myWidget = new MyWidget();
m_model = new QStandardItemModel();
m_mapper = new QDataWidgetMapper();
...
m_mapper->setModel(m_model);
m_mapper->addMapping(myWidget, id, "fileName");
...
« Последнее редактирование: Апрель 24, 2013, 12:30 от burevestnik » Записан
burevestnik
Гость
« Ответ #1 : Апрель 24, 2013, 15:32 »

Тут дело в том, что фокус теряется MyWidget'ом, когда юзер кликает мышью, по QLineEdit чтобы ввести текст! Т.е. Когда фокус переходит к внутренним виджетам!
надо ловить:
Код:
 void QApplication::focusChanged ( QWidget * old, QWidget * now ) [signal]
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.136 секунд. Запросов: 20.