Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Qt

Войти
Регистрация
Восстановить пароль
 
LeviSkay
0 / 0 / 1
Регистрация: 10.01.2017
Сообщений: 5
#1

Создание динамической библиотеки для GUI - C++ Qt

10.01.2017, 02:44. Просмотров 202. Ответов 1
Метки нет (Все метки)

Доброй ночи, дорогие форумчане!
Пишу Вам впервые, работаю с QT всего-ничего, так что не серчайте.
Итак, есть некий проект, в котором происходит обработка комплексных чисел. Захотелось к этому проекту прекрутить графику. Сделал проект динамической библиотеки в QT, в котором описал форму (проект в QT будет просто отображает полученные из главного файла комплексные данные в виде точки на комплексной прямой), в главном проекте создал класс, инкапсулирующий в себя владение функциями данной библиотеки.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//main.cpp
int main(int const argc, char const* const * argv) 
{
   gui qt_gui;
  //реализация объекта класса, конструктор которого загружает динамическую библиотеку
  //и запускает метод run_gui(), который описан в проекте Qt и служит для запуска GUI
   while(qt_gui.is_next)
   {
     // далее идет код обработки различных комплексных чисел
 
      qt_gui.put_sample(std::complex<double> data);
     //метод, который передает в GUI комплексное число, GUI  выводит его на экран
   }
   //код далее...
}
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//interface.cpp в проекте QT
#include "interface.h"
 
#include "mainwindow.h"
#include <QApplication>
 
 
void
run_gui(void)
{
    int a = 0;
    char **av = NULL;
    
    QApplication app(a,av);
    
    MainWindow main_window();
    
    main_window.show();
 
    app.exec();
 
}
При запуске конструктора объекта класса gui запускается функция run_gui и ,соответственно, цикл обработки событий app.exec(). На этом ход программы останавливается и дальнейший код в main.cpp не выполняется.
Вопрос состоит в следующем: как правильно организовать подобное взаимодействие? Стоит понимать, что комплексная точка будет не одна, проект будет работать в бесконечном цикле до нажатия стоп-кнопки либо закрытия приложения, а на экран будут выводится N-ое количество этих точек.
P.s. И доп вопрос: что лучше использовать для построения точек на графике?
P.s.s. Заранее благодарен
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2017, 02:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание динамической библиотеки для GUI (C++ Qt):

Qt creator создание динамической библиотеки - C++ Qt
Подскажите, как создать динамическую библиотеку dll. Нашёл инструкцию, не проходит компиляция. TEMPLATE = lib # Input SOURCES...

Создание GUI для простой программы - C++ Qt
Здравствуйте. Срочно нужна помощь. Нужно сделать гуй для программы: #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;string&gt; ...

Создание GUI для готового кода C++ - C++ Qt
Доброго времени суток! Есть код который работает. Мне необходимо создать для него элементарный интерфейс. Я в этом новичок, так что не...

Отладка динамической библиотеки - C++ Qt
Скомпилировал я динамическую библиотеку, присоединил к проекту. Папка с исходниками библиотеки лежит в отдельной папке (не в папке проекта,...

Как подключить заголовки динамической библиотеки? - C++ Qt
Компилирую g++. Нужно в main.cpp включить QString. Подключаю libQt5Core.a опцией -lQt5Core. Библиотека подключается, но #include...

Подключение динамической библиотеки с другого каталога - C++ Qt
Всем привет. Тема знаю что не новая, везле есть подобные вопросы и ответы. Но правда может плохо искал. В проект подключается...

1
Wyn
Модератор
1045 / 627 / 231
Регистрация: 14.01.2016
Сообщений: 2,019
Записей в блоге: 9
10.01.2017, 09:39 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
LeviSkay, Qt Gui основан на QEventLoop, который представляет из себя бесконечный цикл. В app.exec() автоматом запускается QEventLoop.
Выводи все вычисления в отдельный QThread-поток. И уже из потока обращайся с помощью системы соединений к соответствующим слотам элементов GUI-потока.
http://doc.qt.io/qt-5/threads-qobject.html
http://doc.qt.io/qt-5/qthread.html

Добавлено через 1 минуту
Для вывода графиков можно использовать QtCharts или QCustomPlot.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2017, 09:39
Привет! Вот еще темы с ответами:

Создание событий для сторонней библиотеки - C++ Qt
Всем доброго времени суток. Есть функция из сторонней библиотеки которая выполняет операции с файлами, нужно получать сигнал или событие о...

Пример создания динамической библиотеки в Visual Studio на Qt - Кроссплатформенная разработка
Здравствуйте, может у кого есть пример создания .dll c помощью VC для клиента на qt, неявное связывание? Спасибо.

Как в Qt из динамической библиотеки (DLL, SO .) выкинуть окошко с исключением и красным крестиком с надписью аля std::runtime_error ? - C++ Qt
Возможно есть для этого специальный функционал в супер Qt, который мне за сегодняшний день так понравился? :victory:

Как запустить qt gui программу, как демон, без gui, скрыв gui? - C++ Qt
Как запустить qt gui программу, как демон, без gui, скрыв gui? В gui браузер выполняет определенные действия, и нужно запустить этот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru