Здравствуйте, гость ( Вход | Регистрация )
dzyk | Дата 16.4.2008, 15:23 |
Ситуация такая. Написал немного кода. Создается второй поток и через определенные интервалы времени берет текстовое содержимое из TextEdit'а главного потока. И пока пользователь набирает документ - анализирует текст, сортирует его по базам данных, а свою работу показывает изменением цвета, шрифта, (стиля). И делает это просто, вставляя кусок измененного текста в тот же TextEdit главного потока взамен существующего нераскрашеного куска.... Проблема в том, что когда документ достигает среднего размера. Копирование и вставка текста происходит с мерцанием и подрагиванием скроллера... А это ваЩЕ недопустимо. Как же быть? Неужели создавать свой класс, производный от QPaint?.... чего очень не хочется. Может посоветуете что? |
|
Tonal | Дата 14.4.2008, 18:02 |
В Qt, только в главном потоке можно создавать и оперировать виджетми. В остальных - низя. Так что передавай QString. |
|
ViGOur | Дата 14.4.2008, 17:53 |
А вообще извращение создавать новые объекты QTextEdit во втором потоке? НЕ понял что ты имеешь ввиду. Может лучше QString'ом оперировать? Но единственное запомни, сигналы будут обрабатываться в том потоке, в котором создан принимающий их объект, если тебя это устраивает, то все в порядке. |
|
dzyk | Дата 14.4.2008, 17:35 |
А вообще извращение создавать новые объекты QTextEdit во втором потоке? Может лучше QString'ом оперировать? |
|
dzyk | Дата 14.4.2008, 17:21 |
Ну понял я что сделал не так вообщем объект то не создал textEdit_th= new QTextEdit; в строках кода transactionthred.cpp нужно было создать объект то, вот так:
p.s. Как же помогает переписка самого с собой |
|
dzyk | Дата 14.4.2008, 16:31 |
ViGOur, спасибо за совет. Проблема такая: немогу получить доступ к объекту TextEdit главного потока приложения из дочернего потока. В то время когда обращаешься к объекту, программа просто "убивается операционкой". Выкладываю код. Он основан на примере из книги Бланшета, там в разделе 18 как раз разбирают, как использовать объект главного потока. main.cpp
textwindow.h
textwindow.cpp
transactionthread.h
transactionthread.cpp
|
|
ViGOur | Дата 13.4.2008, 20:17 |
Вопросы: 1. Чтобы приложение работало быстро, тебе нужно:
2. А в чем в данном пункте собственно проблема? 3. По тому ТЗ, что ты описал, я бы выбрал QTextEdit. |
|
dzyk | Дата 13.4.2008, 18:39 |
Задача: Создание приложения на Qt - основным элементом является текстовое поле. Пользователь вводит текстовую информацию и она обрабатывается фоновым процессом, в котором с помощью регулярных выражений анализируется введенный текст. В конечном итоге пользователь видит как раскрашивается/маркируется им введенный текст, а приложение помещает куски текста в базу данных. Проблема в том, что в отличии от текстовых редакторов с подсветской синтаксиса языков, анализ введенного текста слишком сложный. Вопросы:
|
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 14:30 |