crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Как считывать с stdin ?
mozgofil
  опции профиля:
сообщение 25.4.2009, 16:17
Сообщение #1


Студент
*

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

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




Репутация:   0  


Windows:
Имеется приложение, которое вызывает др. прмложение(код которого приводится ниже),
и пишет в его stdin. с консольным приложением работает, с QAppliction - нет:
    QApplication App(null,NULL);
    QMainWindow W;
    TraceEdit Edit;
    QFile qstdin;
         qstdin.open(stdin, QIODevice::ReadOnly);
    W.show();
    char c;
    if(qstdin.getChar(&c))
    {
        QString str;
        str.sprintf("%c",c);
        Edit.append(str);
    }
    return App.exec();
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 25.4.2009, 17:06
Сообщение #2


Старейший участник
****

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

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




Репутация:   9  


А если попробовать QCoreApplication?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 25.4.2009, 17:39
Сообщение #3


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

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

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




Репутация:   94  


Цитата(mozgofil @ 25.4.2009, 20:17) *
QApplication App(null,NULL);
а вот это зачем?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mozgofil
  опции профиля:
сообщение 25.4.2009, 18:33
Сообщение #4


Студент
*

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

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




Репутация:   0  


Цитата(Kagami @ 25.4.2009, 17:06) *
А если попробовать QCoreApplication?

-вылетает ASSERT, что то там пишется про отсутствие GUI

Цитата(Litkevich Yuriy @ 25.4.2009, 17:39) *
Цитата(mozgofil @ 25.4.2009, 20:17) *
QApplication App(null,NULL);
а вот это зачем?

-затем, что параметры не используются.

Мне нужно организовать асинхронную передачу данных между процессами,
stdin идеально подходил бы, но почему-то работает только для консольных приложений :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 25.4.2009, 18:51
Сообщение #5


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

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

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




Репутация:   94  


Цитата(mozgofil @ 25.4.2009, 22:33) *
-затем, что параметры не используются.
и что с того? напиши как принято в Qt и проверь.

Цитата(mozgofil @ 25.4.2009, 22:33) *
но почему-то работает только для консольных приложений
а что значит для консольных, если у тебя QCoreApplication вызывает ASSERT?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mozgofil
  опции профиля:
сообщение 25.4.2009, 20:21
Сообщение #6


Студент
*

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

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 25.4.2009, 18:51) *
Цитата(mozgofil @ 25.4.2009, 22:33) *
-затем, что параметры не используются.
и что с того? напиши как принято в Qt и проверь.
Цитата(mozgofil @ 25.4.2009, 22:33) *
но почему-то работает только для консольных приложений
а что значит для консольных, если у тебя QCoreApplication вызывает ASSERT?

1)проверил, ничего не изменилось, также виснет

2)"для консольных" -значит без Qt, т.е. std'шные
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 25.4.2009, 20:54
Сообщение #7


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

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

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




Репутация:   94  


Цитата(mozgofil @ 25.4.2009, 20:17) *
QMainWindow W;
сразу-то я и не заметил. Этот класс находится в модуле QtGui!
собственно тебе нужно приложение с крафическим интерфейсом или всё таки без него?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mozgofil
  опции профиля:
сообщение 25.4.2009, 20:58
Сообщение #8


Студент
*

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

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 25.4.2009, 20:54) *
Цитата(mozgofil @ 25.4.2009, 20:17) *
QMainWindow W;
сразу-то я и не заметил. Этот класс находится в модуле QtGui!
собственно тебе нужно приложение с крафическим интерфейсом или всё таки без него?

в том то и дело, что интерфейс нужен
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 25.4.2009, 22:08
Сообщение #9


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

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

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




Репутация:   94  


ну тогда делай как пологается для графического приложения, т.е. используй:
QApplication app(argc, argv);

и, для простоты, подключи сразу все заголовочники:
#include <QtGui>

проверь свой pro-файл, может ты там убирал модуль GtQui, т.е. не должно быть таких строчек:
QT -= gui
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mozgofil
  опции профиля:
сообщение 26.4.2009, 10:35
Сообщение #10


Студент
*

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

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 25.4.2009, 22:08) *
ну тогда делай как пологается для графического приложения, т.е. используй:
QApplication app(argc, argv);

и, для простоты, подключи сразу все заголовочники:
#include <QtGui>

проверь свой pro-файл, может ты там убирал модуль GtQui, т.е. не должно быть таких строчек:
QT -= gui

:blink:
QApplication app(argc, argv); У же пробовал, о чём писалось выше.
Если бы QtQui не был подключён, приложение не скомпилялось бы.
проблемы ТОЛЬКО с stdin откуда не получается считать 1 символ
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 18.4.2024, 8:59