Russian Qt Forum
Апрель 25, 2024, 15:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 2 [3] 4
31  Qt / Вопросы новичков / Как правильно реализовать просмотр данных в таблице. QtableWidget или QtableView : Октябрь 10, 2014, 23:54
Здравствуйте, Уважаемые.

Прошу помощи определится с технологией программирования.

Задача такого плана:.

Нужно отобразить набор данных в таблице.
Столбцов в таблице немного всего 5, а вот строк может быть от 100 до 100 тысяч и больше.
Данные в ячейках таблице, массивы символов (разделены пробелами) которые тоже могут быть разной длины, но не больше 200.
Отображаться будут преимущественно в HEX формате.

Нужно реализовать следующую функциональность:

1. щелкнув мышкой на любом значении в ячейке таблицы он должен подсветится и соответственно должны подсветится все такие же значения, во всех ячейках таблицы
( типа подсветки в редакторе Qt Сreator)
2. Тоже самое только выделив несколько значений в строке.
   Так же возможность скопировать в буфер обмена.

Подсвечиваться должна не вся ячейка, а только символ  в ней.
Редактировать ячейки не нужно.

Сам вижу следующий путь решения задачи.

Создать QtableWidget.
Переопределить QTableWidgetItem в нем создать фильтр  событий и отслеживать курсор и нажатия мыши.
С внешним миром общаться при помощи сигналов.

Не понятно, как определить на какой символ в строке было произведено нажатие.
Ведь в ячейке не набор объектов, а единая строка.
Так же не ясно можно ли отображать разными цветами символы в строке.

Еще можно создать делегата.

Так же можно построить таблицу с помощью QtableView.

Я,  путаюсь в технологиях. C Qt знаком на начальном уровне,  пишу в нем не часто.

Поэтому прошу помощи клуба.

Главный момент размер таблицы, нужно, что бы все нормально крутилось, на не очень навороченном ПК, при 100 тысячах строк в таблице.
32  Qt / Вопросы новичков / Собранное приложение корректно не работает в Win7 : Сентябрь 23, 2013, 17:27
Доброго всем здоровья.

Тут этак с год назад писал приложение на Qt сделал процентов 80.
Потом пришлось отложить.

Сейчас снова к нему вернулся и вижу один сплошной глюк.

Когда отставил работу та чаcть была отлажена и все работало.

Но тогда у меня стоял WinXp соответсвенно собирал все под ним.

Сейчас поменял машину и поставил Win7.

Вопрос чего могло случиться, такое впечатление что глючит на уровне Qwt.

Я понимаю что нужно играться с библиотеками и компиляторами, но подскажите на что обратить внимание в первую очередь.

Неужели нет совместимости снизу вверх?

Еще вопрос есть где либо доступно написано как одним взмахом собрать приложение для WinXp и Linux.
Такое вообще возможно?


33  Qt / Qt-инструментарий / Re: Ускорение компиляции в Qt-Creator под Win7 : Октябрь 27, 2012, 14:19
Вот вам статья в помощь
http://qtlinux.narod.ru/parallel_make.htm

Там вообще все статьи написаны очень профессионально и мне во многом очень помогли.
Спасибо автору преогромнейшое.
Жалко только что там нельзя коментировать.
34  Qt / Qt-инструментарий / Re: Как QTCreator подсунуть кросс компилятор от ARM. : Октябрь 27, 2012, 12:21
Спасибо заработало

Прописал путь до \QtSDK\Desktop\Qt\4.8.1\mingw\bin и все случилось.

Версия QtCreator получилась 2.5.85
35  Qt / Qt-инструментарий / Re: Как QTCreator подсунуть кросс компилятор от ARM. : Октябрь 26, 2012, 23:03
Хм.. Перособрал другим компилятором  MinGW (тот что в сборке 4.8.1)
пререстал ругаться на QtGui4.dll  не находит файл Core.dll как и в случае VS2008.

36  Qt / Qt-инструментарий / Re: Как QTCreator подсунуть кросс компилятор от ARM. : Октябрь 26, 2012, 22:16
Спасибо за ответы.

Скачал исходники QTCreator 2.6
Собрал вначале MinGW 4.7 все собралось при запуске потребаволо dll типа QtCore4.dll QtGui4.dll и прочие.
Они были добавлены в папку QtCreator (из сборки MinGW) после чего в процессе  запуска начало выскакивать  ошибка запуска со всеми вытекющими.
Короче не работатет и ошибка в модуле QtGui4.dll.
Пробовал собирать как отладку так и релиз везде результат один.

Затем установил VS2008 и собрал при помощи него.
Ошибка стала другая не находит файл Core.dll причем этот файл не из сборки SDK а он из проекта тоесть только что собран.
Самое главное он есть в том пути, который в окне ошибки.

Установлено последнее QTSDK 1.2.1 библиотека QT 4.8.1

Сборке с MinGW может не нравится версия компилятора, наверное нужно пресобрать библиотеку одним компилятором.
Вот с VS2008 не понятно что ему не нравится.
37  Qt / Qt-инструментарий / Как QTCreator подсунуть кросс компилятор от ARM. : Октябрь 26, 2012, 10:06
Уважаемые, здравствуйте!

У меня  такая проблема хочу использовать QTCreator 2.4 как IDE  (редактор) для встроенных приложений. Для ARM AVR и прочих МК.
Причем проекты ни к чему не привязаны, имею ввиду линуксы и прочие прелести жизни.
QTCreator мне понравился как редактор, но не могу его настроить для сборки проекта с другим компилятором кроме MinGW или VS.

Делаю следующее в инструменты->настройки->инструменты добавляю настройки GCCE прописываю пути к компилятору заодно и GDB.

И все вроде хорошо, но в закладке проекты (что слева)  основные настройки, в выпадающем списке инструменты нет моего созданного инструмента.
Там присутствуют только инструменты созданные изначально при установке крейтора.

Пробовал по разному   например если в инструменты->настройки->инструменты клонировать инструмент из области автоопределнные то этот клон в выпадающем списке инструмента проекта будет виден.
Как только я в этом клоне поменяю путь к компилятору, на какой нибудь свой, то все этот клон из списка инструменты проекта пропадает.

Возможно ли в принципе QTCreator подсунуть другой компилятор пока вопрос в этом.

Статьи читал но там данная тема не освещена.
http://www.uschema.com/qt-creator-as-ide-for-c-embedded-projects/
http://doc.qt.digia.com/qtcreator-2.4/creator-tool-chains.html

Если при установке Крейтора он автоматом находит уже установленный тот же MinGW, то как его заставить увидеть и другие компиляторы.

Извиняюсь, но в этих вопросов я совсем плохо отретируюсь, всегда пользовался уже готовыми IDE типа Кеил или ИАР.
После опыта работы с Крейтором понял насколько с ним удобно работать.
В сети есть куча примеров по настройки Эклипса или VS, использования их как редактора для встроенных систем. Крейтор думаю ничуть не хуже этих редакторов, причем он развивается.
38  Qt / Вопросы новичков / Re: Как получить координаты мыши, при обработке события от клавиатуры (график QWT) : Ноябрь 28, 2011, 17:44
вообще то не мешало бы еще проверять что qwtp->canvas() == obj в eventFilter

Это все сделано.

а какие координаты приходят?

Что то типа х = -17672346 y = -1723523
39  Qt / Вопросы новичков / Как получить координаты мыши, при обработке события от клавиатуры (график QWT) : Ноябрь 26, 2011, 15:29
Здравствуйте.

Есть график QWT который масштабирую.

Основа взята из уроков
http://www.prog.org.ru/topic_11884_0.html
http://qtlinux.narod.ru/qwtchartzoom.htm

Отдельное спасибо их авторам.

Перехватываются события элементов управления в

Код:
 eventFilter(QObject *obj,QEvent *event)

который зарегистрирован в канве

Код:
 qwtp->canvas()->installEventFilter(this);

Шкала по Х мне нужна только положительная.
При масштабировании я запоминаю, положение Х курсора мыши,
для того чтобы при масштабировании графика, эта точка на графике, оставалась на месте, а двигался  график по бокам.

Все работает при прокрутке колесом мыши.

Но мне нужно изменять масштаб клавишами '+', '-'

Я перехватываю события от клавиатуры в eventFilter

Код:
        if (event->type() == QEvent::KeyPress ||
            event->type() == QEvent::KeyRelease)
        {
           QKeyEvent *kEvent = static_cast<QKeyEvent *>(event);
           ......
        }

Тоже все замечательно, но тут главная проблема я не могу получить координаторы мыши

Если сделать так

Код:
    QMouseEvent *mEvent = static_cast<QMouseEvent *>(event);

То в mEvent получаю левые значения.

Проблему решил следующим образом, постоянно отслеживаю положение мыши и сохраняю ее координаты.

В принципе все работает, но хочется считать положение курсора мыши вместе с обработкой события от клавиатуры.

Подскажите как это реализовать.
40  Qt / Вопросы новичков / Re: Вопросы по потокам и файлам : Октябрь 08, 2011, 01:04
что за приложение такое, интересно?

Сбор, отображение данных с самодельного внешнего устройства через USB.
Протокол HID.
41  Qt / Вопросы новичков / Re: Вопросы по потокам и файлам : Октябрь 07, 2011, 19:15
Выделяй столько, сколько действительно необходимо.

Дело в том что приложение которое я разрабатываю может насосать бес предела.

Поэтому задумался над тем, что надо как то ограничивать это дело.
Думаю сделать порог 300 - 500 мег.
После чего все обламывается и выдаем сообщение пользователю.
42  Qt / Вопросы новичков / Re: Вопросы по потокам и файлам : Октябрь 06, 2011, 16:41
Какой поток? Что используешь для записи данных? QDataStream?
Да его родимого и использую.


Но, к сожалению, в русской терминологии укоренилось что поток - это thread, "многопоточность" multi-threading и.т.п. Поэтому не запутывайте общественность и употребляйте "поток" только в связи с (Q)thread, а не с файлом. 


Спасибо за ответ.
Да я и не запутываю, а спрашиваю.

У меня попутно вопрос по Win.

Есть ли рекомендации какой максимальный кусок в памяти можно безопасно выделить для приложения?


43  Qt / Вопросы новичков / Вопросы по потокам и файлам : Октябрь 05, 2011, 20:41
Здравствуйте.
Просветите пожалуйста.

Принимаю данные по USB которые при необходимости нужно сохранить в файл.
Есть возможность сохраненные файлы открыть.

Пока реализовал следующим образом.

Прием данных.
Открываю файл ему назначаю поток.
Пишу в поток периодически делаю flush()

Реализовал и немного призадумался.

Нужно ли делать постоянно flush() сохранность данных не критична.
Вопрос следующего плана какой объем можно писать в поток?

В зависимости от времени подключения USB устройства там может и 1 гиг насосаться.
Савапятся ли потоки автоматом, или им нужно периодики делать flush()?

Я правильно понимаю из названия поток - это есть реальный поток типа QThread?

Можно ли просто открыть поток, а потом назначить ему файл?
Если да то как?


44  Qt / Вопросы новичков / Re: Почему не работает оператор сравнения != в QByt : Октябрь 04, 2011, 19:50
Значит из потока еще что-то приходит.
Что возвращает buf.size ()?

Спасибо всем за ответы.

buf.size(0) возвращает 35.

Я не правильно читал из потока.
Почему то мне подумалось что сравнение должно работать до завещающего нуля (по аналогии с функциями сравнения С), но в QByteArray  это не так.
Так что там все правильно работает.

У меня немного другой вопрос каким методом (оператором) можно прочить из потока строку с завещающим "\0" а
не "\n"

Перепробовал все read и операторы >>, не хотят они до нуля читать.
Пришлось свою функцию написать с чтением побайтно и проверкой на 0
45  Qt / Вопросы новичков / Re: Почему не работает оператор сравнения != в QByteArray : Октябрь 03, 2011, 22:44
Код
C++ (Qt)
$ cat main.cpp
#include <QByteArray>
#include <QDebug>
 
int main( int, char ** )
{
       QByteArray buf( "*.mvt" );
       qDebug() << "buf == *.mvt ->" << (( buf == "*.mvt" )? "Yes" : "No");
       qDebug() << "buf != *.mvt ->" << (( buf != "*.mvt" )? "Yes" : "No");
       return 0;
}
 
$ ./test
buf == *.mvt -> Yes
buf != *.mvt -> No
 
 

Вот так все работает.

Если объявить в заголовке класса QByteArray buf
Потом где то в программе присвоить (в моем случе прочитать из потока) значение, то не хочет работать.

При объявлении в заголовке, отладчиком четко видно, что buf создается с запасом где то 32 байта.
Когда объявляем локально QByteArray buf то имеем четкое количество байт под строку.

Может в этом дело, но ведь там же есть завершающий 0.

Тогда можно предположить, что QByteArray не предназначен для работы со строкоми.
Страниц: 1 2 [3] 4

Страница сгенерирована за 0.078 секунд. Запросов: 23.