Название: Сигналы QLineEdit Отправлено: LIKAN_BLK от Май 05, 2012, 18:01 Необходимо чтоб QLineEdit вырабатывал сигнал после того как пользователь закончил ввод, те когда во вводе встретился EOS(Ну или по нажатии клавиши Enter). Как организовать?
Название: Re: Сигналы QLineEdit Отправлено: Serr500 от Май 05, 2012, 18:22 void QLineEdit::returnPressed () [signal]
http://qt-project.org/doc/qt-4.8/qlineedit.html#returnPressed Название: Re: Сигналы QLineEdit Отправлено: Igors от Май 05, 2012, 18:39 Необходимо чтоб QLineEdit вырабатывал сигнал после того как пользователь закончил ввод, те когда во вводе встретился EOS(Ну или по нажатии клавиши Enter). Как организовать? Откройте букварь, класс QLineEdit и посмотрите какие сигналы он испускает - через пару минут (или раньше) Вы найдете нужный. Это гораздо быстрее и практичнее чем спрашивать такие вещи на форуме :)Название: Re: Сигналы QLineEdit Отправлено: LIKAN_BLK от Май 05, 2012, 20:31 ок почитал, теперь вопрос, как это использовать?
Я хочу чтоб этот сигнал ловил класс отнаследованный от QWidget. В определении класса я пишу Код: private slots: Название: Re: Сигналы QLineEdit Отправлено: Serr500 от Май 05, 2012, 20:48 Вы принципиально не читаете документацию?
Цитировать QLineEdit LineEdit; MyWidget MyWidget; MyWidget.connect(&LineEdit, SIGNAL(returnPressed()), SLOT(on_lineEdit_returnPressed())); В слоте on_lineEdit_returnPressed() выполняете требуемые отрисовки. Название: Re: Сигналы QLineEdit Отправлено: LIKAN_BLK от Май 05, 2012, 20:49 Эмм, я думал что какие либо операции с QPainter можно производить только в paintEvent, не?
Название: Re: Сигналы QLineEdit Отправлено: Serr500 от Май 05, 2012, 20:57 Если Вы хотите перерисовать виджет по сигналу, то в обработчике сигнала выставляете требуемые параметры и вызываете QWidget::repaint() или QWidget::update(). Кстати, можно даже так:
Код: MyWidget.connect(&LineEdit, SIGNAL(returnPressed()), SLOT(repaint())); Вы, похоже, не делаете различий между сигналами (типа returnPressed) и событиями (типа paintEvent). Должен Вам сказать, что это совершенно разные понятия. |