crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> QT CLI+GUI
RazrFalcon
  опции профиля:
сообщение 24.9.2010, 12:50
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


К примеру есть "ядро" программы. Нужно чтоб она работала из консоли. К примеру путь к текстовому файлу задаем, потом она его обрабатывает, и сохраняет в другой, путь к которому мы тоже прописали. Но нужно чтоб была еще и оболочка графическая, но отдельно. Где можно подробно почитать о таком.
1) как обратится из gui к "ядру", и на оборот
2) как вообще работать с qt cli или проще все таки обычный c++ & gcc
С уже готовыми прогами чаще всего работаю именно через консоль. Хочу попробовать свою написать.
PS: Ubuntu 10.04 + QT 4.7 +QT Creator

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 24.9.2010, 12:58
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

Спасибо сказали: 36 раз(а)




Репутация:   7  


Ну так пиши обычное GUI приложение, у которого по умолчанию не показывается гуи, т.е. когда ты его запускаешь с определенными аргументами - то оно как консоль, если с другими - то оно как гуй...

Парси или аргументы командной строки или конфиг в конфиг файле и в зависимости от этого или показывай или нет Гуй.

Или что тебе нужно то?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 24.9.2010, 13:07
Сообщение #3


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Цитата(kuzulis @ 24.9.2010, 12:58) *
Ну так пиши обычное GUI приложение, у которого по умолчанию не показывается гуи, т.е. когда ты его запускаешь с определенными аргументами - то оно как консоль, если с другими - то оно как гуй...

Некогда о таких не слышал :mellow:

Допустим я напишу приложение без отображения гуя, а как же мне ему агрументы в консоли передать.
К примеру temp -cli -in "in" -out "out", что то в таком духе. Ну а если просто запускаю то он с гуй.
Но хотелось бы именно 2-а разных файла. Для гуй и клай отдельно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Sokoloff
  опции профиля:
сообщение 24.9.2010, 13:49
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 237
Регистрация: 1.4.2009
Из: Москва
Пользователь №: 654

Спасибо сказали: 50 раз(а)




Репутация:   11  


Цитата(RazrFalcon @ 24.9.2010, 13:50) *
К примеру есть "ядро" программы. Нужно чтоб она работала из консоли. К примеру путь к текстовому файлу задаем, потом она его обрабатывает, и сохраняет в другой, путь к которому мы тоже прописали. Но нужно чтоб была еще и оболочка графическая, но отдельно. Где можно подробно почитать о таком.
1) как обратится из gui к "ядру", и на оборот
2) как вообще работать с qt cli или проще все таки обычный c++ & gcc
С уже готовыми прогами чаще всего работаю именно через консоль. Хочу попробовать свою написать.
PS: Ubuntu 10.04 + QT 4.7 +QT Creator


Для запуска CLI программы можно использовать QProcess.

Но есть и другой вариант, весь функционал программы выносишь в библиотеку, и CLI и GUI используют эту библиотеку. В CLI остается только проверка входных параметров, печать ошибок и результатов работы. А в GUI только формы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 24.9.2010, 14:04
Сообщение #5


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Цитата(Sokoloff @ 24.9.2010, 13:49) *
Но есть и другой вариант, весь функционал программы выносишь в библиотеку, и CLI и GUI используют эту библиотеку. В CLI остается только проверка входных параметров, печать ошибок и результатов работы. А в GUI только формы.

Вот как сделать туже библиотеку я и не знаю, не знаю как передать в cli параметры, как принять все эти --help/-in "in" и тд.
Как из гуй подключится к lib, в моем случае .so как я понимаю и тд.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
s200999900
  опции профиля:
сообщение 24.9.2010, 15:33
Сообщение #6


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 29.5.2010
Пользователь №: 1765

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(RazrFalcon @ 24.9.2010, 12:50) *
К примеру есть "ядро" программы. Нужно чтоб она работала из консоли. К примеру путь к текстовому файлу задаем, потом она его обрабатывает, и сохраняет в другой, путь к которому мы тоже прописали. Но нужно чтоб была еще и оболочка графическая, но отдельно. Где можно подробно почитать о таком.
1) как обратится из gui к "ядру", и на оборот
2) как вообще работать с qt cli или проще все таки обычный c++ & gcc
С уже готовыми прогами чаще всего работаю именно через консоль. Хочу попробовать свою написать.
PS: Ubuntu 10.04 + QT 4.7 +QT Creator

Если интересует вариант отвязки логики программы от интерфейса (gui/cli) то в suse линуксе есть хороший вариант: http://kkaempf.blogspot.com/2008/05/declar...rlier-this.html
"....Earlier this year, Stefan announced the availability of the YaST user interface engine separate from YaST itself.
The user interface engine, packaged in yast2-libyui (source code here),provides the abstraction from graphical user interfaces (Qt, Gtk) and text based (ncurses) user interfaces. It now can be used independently of YaST2 for generic (C++) applications....."
Но сам не разбирался с возможностью использования на убунту, если получится, отпишитесь пожалуйста.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Sokoloff
  опции профиля:
сообщение 24.9.2010, 15:46
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 237
Регистрация: 1.4.2009
Из: Москва
Пользователь №: 654

Спасибо сказали: 50 раз(а)




Репутация:   11  


Цитата(RazrFalcon @ 24.9.2010, 15:04) *
Цитата(Sokoloff @ 24.9.2010, 13:49) *
Но есть и другой вариант, весь функционал программы выносишь в библиотеку, и CLI и GUI используют эту библиотеку. В CLI остается только проверка входных параметров, печать ошибок и результатов работы. А в GUI только формы.

Вот как сделать туже библиотеку я и не знаю, не знаю как передать в cli параметры, как принять все эти --help/-in "in" и тд.
Как из гуй подключится к lib, в моем случае .so как я понимаю и тд.


Как сделать библиотеку:
http://habrahabr.ru/blogs/cpp/101994/
http://mech.math.msu.su/~zubr/library.html
И еще примерно 53800

Про параметры написано в QApplication и в QCoreApplication. Кстати там же описано как сделать приложение, которое будет работать в двух режимах CLI/GUI.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 24.9.2010, 16:43
Сообщение #8


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Спасибо, по разбираемся сейчас.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 24.9.2010, 20:05
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9655
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


RazrFalcon, посмотреть программу которая анализирует аргументы командной строки можно, например, тут, там используются исходники из сторонней библиотеки, для удобной работы с аргументами.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 27.9.2010, 15:33
Сообщение #10


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Прошу прощения за нубовство, но что делать с qDebug?
Элементарный код:
#include <QtCore/QCoreApplication>
#include <QTextStream>
#include <QString>
#include <QtDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    int x=15;
    QString s;
    s.number(x);
    qDebug() << s;   //вывод ""
    qDebug("%x");    // 0
    qDebug("hmm"); // hmm
    //qDebug(s); - error

    return a.exec();
}


Сообщение отредактировал RazrFalcon - 27.9.2010, 15:33
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.8.2019, 22:45