Qt и реакция на ввод |
Здравствуйте, гость ( Вход | Регистрация )
Qt и реакция на ввод |
AndrewKlykow |
24.3.2013, 22:37
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 24.3.2013 Пользователь №: 3762 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте. Подскажите, пожалуйста, кто может. Нужно, чтобы вводимые textedit буквы по событию введения закидывались в QString. Долго искал в интернете ответ, но не нашел. Присылаю код, который надумал после поисков. Код работает, но в QString ничего не попадает.
|
|
|
Алексей1153 |
24.3.2013, 23:38
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
а так пробовал ?
|
|
|
AndrewKlykow |
26.3.2013, 14:52
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 24.3.2013 Пользователь №: 3762 Спасибо сказали: 0 раз(а) Репутация: 0 |
а так пробовал ?
Пробовал. Qt ругается, что метод text() нигде не определен. Оно и понятно. Text() метод QKeyEvent, поэтому его нужно вызывать через переменную, имеющую тип QKeyEvent. Так что так никак не получится. |
|
|
lanz |
26.3.2013, 15:04
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Алексей1153 имел ввиду следующее(как мне кажется ):
|
|
|
AndrewKlykow |
26.3.2013, 15:50
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 24.3.2013 Пользователь №: 3762 Спасибо сказали: 0 раз(а) Репутация: 0 |
А, ну так то рабать будет. Но я не о том. Мне нужно метод KeyEvent для TextEdit переопределить. Для начала переопределяю его, чтобы он мне ничего не выводил
Переопределяю здесь:
Но TextEdit все равно выводит все, а при запуске отладки Qt выдает Warning: 'virtual void QTextEdit::keyPressEvent(QKeyEvent*)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]. Я наверное как-то неправильно переопределяю его. Не в том месте пишу, наверное, пишу переопределение? |
|
|
lanz |
26.3.2013, 16:38
Сообщение
#6
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Нет, не в том. Нужно создать свой класс, который наследует от QTextEdit.
И в нем описывать свой метод.
Затем вместо QTextEdit добавить свой класс в форму. Еще одним способом является установка фильтра событий - http://qt-project.org/doc/qt-4.8/qobject.h...tallEventFilter |
|
|
Алексей1153 |
26.3.2013, 18:12
Сообщение
#7
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
*жесть*
AndrewKlykow, Переопределяю здесь: #include "mainwindow.h" #include "ui_mainwindow.h" #include <QKeyEvent> #include <Qt> #include <QApplication> int g=0; void QTextEdit::keyPressEvent(QKeyEvent *){} MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), а это хоть скомпилировалось ? |
|
|
lanz |
27.3.2013, 8:09
Сообщение
#8
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Цитата *жесть* Насколько я понимаю, это из Ruby. |
|
|
Алексей1153 |
27.3.2013, 12:56
Сообщение
#9
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
lanz, не, в принципе это вполне может скомпилиться, но не в случае класса QTextEdit, так как такой метод уже точно определён
|
|
|
Текстовая версия | Сейчас: 28.3.2024, 14:18 |