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

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

Восстановить пароль Регистрация
 
LeviSkay
0 / 0 / 1
Регистрация: 10.01.2017
Сообщений: 5
10.01.2017, 02:44     Создание динамической библиотеки для GUI #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. Заранее благодарен
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2017, 02:44     Создание динамической библиотеки для GUI
Посмотрите здесь:

C++ Qt GUI Frontend для консольной проги
C++ Qt Создание библиотеки с qt
Создание GUI для простой программы C++ Qt
C++ Qt Как в Qt из динамической библиотеки (DLL, SO .) выкинуть окошко с исключением и красным крестиком с надписью аля std::runtime_error ?
Qt creator создание динамической библиотеки C++ Qt
Создание событий для сторонней библиотеки C++ Qt
C++ Qt Подключение динамической библиотеки с другого каталога
C++ Qt GUI для С++
C++ Qt Модульное GUI приложение для тестирования
Создание GUI для готового кода C++ C++ Qt
C++ Qt Отладка динамической библиотеки
Как подключить заголовки динамической библиотеки? C++ Qt

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wyn
Модератор
496 / 375 / 147
Регистрация: 14.01.2016
Сообщений: 1,348
Записей в блоге: 8
10.01.2017, 09:39     Создание динамической библиотеки для GUI #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.
Yandex
Объявления
10.01.2017, 09:39     Создание динамической библиотеки для GUI
Ответ Создать тему
Опции темы

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