Название: Сигналы и слоты, Отправлено: diduz от Июль 29, 2010, 21:25 Здравствуйте,недавно начал изучать QT, хочу написать простую прогу->окошко с 2 QTextEdit в 1 можно вводить все а в другое только цифры.проблема: поймать момент когда пользователь вводит тект в QTextEdit, я знаю о сигнале textChanged() но я создавал свои класс и из него уже не могу воспользоваться этим сигналом.
Код: #include "Textnum.h" Название: Re: Сигналы и слоты, Отправлено: Mikhail от Июль 29, 2010, 21:42 Зачем же так извращаться.
Есть такой метод для QTextEdit void QTextEdit::keyPressEvent ( QKeyEvent * e ) [virtual protected] Переопредели его в своем редакторе и все получится. Название: Re: Сигналы и слоты, Отправлено: SimpleSunny от Июль 29, 2010, 22:08 Зачем же так извращаться. Есть такой метод для QTextEdit void QTextEdit::keyPressEvent ( QKeyEvent * e ) [virtual protected] Переопредели его в своем редакторе и все получится. А если пользователь мышкой вставит текст? Название: Re: Сигналы и слоты, Отправлено: UVV от Июль 30, 2010, 08:35 Код: tn.connect(tn.gettext(), SIGNAL(textChanged()), tn, SLOT(textslot())); Название: Re: Сигналы и слоты, Отправлено: NicK от Июль 30, 2010, 09:36 а просто валидатор поставить не вариант?
Название: Re: Сигналы и слоты, Отправлено: Mikhail от Июль 30, 2010, 09:42 Зачем же так извращаться. Есть такой метод для QTextEdit void QTextEdit::keyPressEvent ( QKeyEvent * e ) [virtual protected] Переопредели его в своем редакторе и все получится. А если пользователь мышкой вставит текст? Для этого случая переопределить следующий слот void QTextEdit::paste () [slot] Pastes the text from the clipboard into the text edit at the current cursor position. If there is no text in the clipboard nothing happens. To change the behavior of this function, i.e. to modify what QTextEdit can paste and how it is being pasted, reimplement the virtual canInsertFromMimeData() and insertFromMimeData() functions. Название: Re: Сигналы и слоты, Отправлено: whirlwind от Июль 30, 2010, 10:06 а просто валидатор поставить не вариант? метод setValidator() есть только у QLineEdit. Хотя, возможно, топикстартеру именно его и хотелось бы использовать Название: Re: Сигналы и слоты, Отправлено: JamS007 от Июль 30, 2010, 12:33 Народ, что вы накинулись, человк же написал, что только начинает изучать Qt и по видимум С++ тоже. Отнеситесь с пониманием к этому.
Код: tn.connect(tn.gettext(),SIGNAL(tn.gettext().textChanged()),tn,SLOT(textslot())) вот этот код луше перенести в конструктор класса (если не знаешь что это - почитай в инете, или пиши в ЛС), и немного причесать :), что-то типа такого: Код: connect(this->lineEdit1,SIGNAL(textChanged()),this,SLOT(textslot())) Прости, твой код не перечитывал, но, думаю, смысл понятен. Название: Re: Сигналы и слоты, Отправлено: diduz от Июль 30, 2010, 12:35 Спасибо что так быстро откликнулись, я теперь знаю о существовании валидаторов и keyPressEvent :)
Но моя цель была разобраться с сигналами и слотами, решил проблему прописав Код: connect(txtNum,SIGNAL(textChanged()),SLOT(textslot())); Название: Re: Сигналы и слоты, Отправлено: diduz от Июль 30, 2010, 12:36 спасибо JamS007
|