Russian Qt Forum
Сентябрь 30, 2024, 12:28
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Как после записи измененного текста QTextEdit отметить, что он "не менялся"?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как после записи измененного текста QTextEdit отметить, что он "не менялся"? (Прочитано 5546 раз)
xintrea
Супер активный житель
Offline
Сообщений: 754
Как после записи измененного текста QTextEdit отметить, что он "не менялся"?
«
:
Июль 15, 2008, 16:16 »
Здравствуйте!
Что-то воткнуть не могу, как сделать следующее. Есть текстовый редактор на базе QTextEdit. И нужно сделать вот что. Если пользователь нажал кнопку "сохранить", текст сохранился в файл, и надо в каком-то свойстве установить, что текст
не менялся
.
Блин что-то путано получается. Скажу другими словами.
То есть нужно, чтобы сразу после сохранения, какой-то метод показывал, что содержимое не было изменено (до тех пор, естественно, пока пользователь не изменит что-нибудь в тексте). Ну то есть такое "интеллектуальное" поведение редактора, чтоб он лишний раз не просил сохранить текст при выходе, если пользователь сделал сохранение, и больше ничего не менял.
Вопрос 1
. Есть ли метод, который информирует, был ли изменен текст QTextEdit? Что-то я не нашел, и на ум приходит только костыль через отловлю сигнала textChanged() и добавления своей логики по изменению дополнитеьного флага в этом обработчике.
Вопрос 2
. Если такой метод есть, то можно ли принудительно в нужный момент (после сохранения текста в файл) изменить его флаг (?) так, чтобы данный метод показывал, что текст
небыл
изменен?
«
Последнее редактирование: Июль 15, 2008, 16:53 от xintrea
»
Записан
Собираю информацию по крупицам
http://webhamster.ru
Karl-Philipp
Гость
Re: Как после записи измененного текста QTextEdit отметить, что он "не менялся"?
«
Ответ #1 :
Июль 15, 2008, 16:51 »
>>Если пользователь нажал кнопку "сохранить", текст сохранился в файл, и надо в каком-то свойстве установить, что текст _не менялся_.
Может просто смотреть на дату изменения файла документа и относительно нее уже делать те или иные действия.
>>То есть нужно, чтобы сразу после сохранения, метод textChanged() ...
Что за метод? Может Вы имеете в виду сигнал
Цитировать
void QTextEdit::textChanged () [signal]
This signal is emitted whenever the document's content changes; for example, when text is inserted or deleted, or when formatting is applied.
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Как после записи измененного текста QTextEdit отметить, что он "не менялся"?
«
Ответ #2 :
Июль 15, 2008, 16:53 »
см.
Цитировать
QTextDocument * QTextEdit::document () const
и QTextDocument:
Цитировать
bool isModified () const
void setModified ( bool m = true )
void modificationChanged().
«
Последнее редактирование: Июль 15, 2008, 16:55 от pastor
»
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
xintrea
Супер активный житель
Offline
Сообщений: 754
Re: Как после записи измененного текста QTextEdit отметить, что он "не менялся"?
«
Ответ #3 :
Июль 15, 2008, 17:01 »
Цитата: pastor от Июль 15, 2008, 16:53
см.
Цитировать
QTextDocument * QTextEdit::document () const
и QTextDocument:
Цитировать
bool isModified () const
void setModified ( bool m = true )
void modificationChanged().
Спасибо, видимо то что нужно.
Вопрос - как вы эти методы в QtAssistant находите? Вот я смотрю страницу "
List of All Members for QTextEdit
" и там этих методов нет.. Понятно, их и не может быть в этом списке, но это же всю иерархию надо расковырять чтоб понять что из чего состоит.. Как вы это делаете?
Записан
Собираю информацию по крупицам
http://webhamster.ru
Red Devil
Гость
Re: Как после записи измененного текста QTextEdit отметить, что он "не менялся"?
«
Ответ #4 :
Июль 15, 2008, 17:54 »
Это методы в QTextDocument.
Они определны там потому что именно этот класс управляет содержимым текстом. QTextEdit предоставляет доступ для того чтобы этот текст изменять.
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Как после записи измененного текста QTextEdit отметить, что он "не менялся"?
«
Ответ #5 :
Июль 15, 2008, 18:12 »
Цитата: xintrea от Июль 15, 2008, 17:01
Вопрос - как вы эти методы в QtAssistant находите? Вот я смотрю страницу "
List of All Members for QTextEdit
" и там этих методов нет.. Понятно, их и не может быть в этом списке, но это же всю иерархию надо расковырять чтоб понять что из чего состоит.. Как вы это делаете?
Во-первых это опыт, накомленый за годы работы на Qt. Во-вторых нужно просматривать методы класса, обращать внимание на типы возвращаемого результата, смотреть описание этих типов, ну и так далее. Походу просмотра нужно запоминать наличие тех или иных методов
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...