![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
breeve |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
я в qt дуб дубом.. Такой вопрос. вот взять например любой чат.. как называется такой виджет что-то вроде textedit только в который нельзя вводить.
Вообщем мне необходимо сделать программу в виде чата.. внизу вводишь нажимаешь ентер и выводиться сверху вот так: Цитата > Я ввел это предложение
|
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
тебе нужно создать класс-окно. Т.е. делаешь наследника от QWidget, в него помещаешь почти всё содержимое main.
У QTextEdit есть сигнал textChanged() и есть слоты: selectAll() cut () paste () идея такая: соеденяешь сигнал textChanged() QTextEdit'а нижнего со слотом своего окна (надо его создать) В слоте делаешь последовательно для этого QTextEdit'а textedit1->selectAll() textedit1->cut () и вставляешь во второй: textedit2->paste () |
|
|
breeve |
![]()
Сообщение
#3
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
тебе нужно создать класс-окно. Т.е. делаешь наследника от QWidget, в него помещаешь почти всё содержимое main. У QTextEdit есть сигнал textChanged() и есть слоты: selectAll() cut () paste () идея такая: соеденяешь сигнал textChanged() QTextEdit'а нижнего со слотом своего окна (надо его создать) В слоте делаешь последовательно для этого QTextEdit'а textedit1->selectAll() textedit1->cut () и вставляешь во второй: textedit2->paste () Алгоритм я понял.. вот сделал как сказали.. Переделал все под класс.. только что мне писать в объявлении TextChanged(), selectAll(), cut(), и paste()? |
|
|
breeve |
![]()
Сообщение
#4
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Насчет TextChanged(), .. как я понял они стандартные.. и объявлять их не нужно.. Я тут нашел в книге про textEdit правда мало очень..
такой вопрос как забиндить клавишу? Вот этот textChanged() высылается при изменении текста.. если я сделаю в точности как сказал Litkevich Yuriy, у меня будет так: я печатаю букву "у" - текст изменился, он его весь выделил, вставил вверх.. печатаю след букву "м" происходит тоже самое.. и получается как зеркало что здесь то и там.. Если я конечно правильно понял.. Но мне надо не так.. мне надо чтобы я напечатал, нажал, он как приплюсовал к строке то что я тока что ввел.. т.е было: > Привет. // я ввел "Хай!" и нажал ентер и получилось > Привет. > Хай! |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 18.7.2025, 8:21 |