crossplatform.ru

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

> Невидимое окно
bigory
  опции профиля:
сообщение 1.11.2010, 23:37
Сообщение #1


Студент
*

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

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




Репутация:   0  


Всем доброе время суток!
Подскажите как создать невидимое окно?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
2 страниц V   1 2 >  
Начать новую тему
Ответов (1 - 9)
Алексей1153
  опции профиля:
сообщение 2.11.2010, 7:10
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


bigory, невидимость бывает разная. Какая у тебя задача ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
vadim303
  опции профиля:
сообщение 2.11.2010, 11:31
Сообщение #3


Студент
*

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

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




Репутация:   0  


Цитата(bigory @ 2.11.2010, 0:37) *
Всем доброе время суток!
Подскажите как создать невидимое окно?

QWidget::hide()
QWidget::setVisible(false)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bigory
  опции профиля:
сообщение 2.11.2010, 20:12
Сообщение #4


Студент
*

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

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




Репутация:   0  


Цитата(bigory @ 1.11.2010, 23:37) *
bigory, невидимость бывает разная. Какая у тебя задача ?


Хочу сделать что-то похожее на
#include "myprocess.h"
QProcess myProc;
myProcess::myProcess(QWidget *parent) : QDialog(parent)
{
        sb.setText("start");
        ib.setText("input");
        QVBoxLayout *vl=new QVBoxLayout;
        vl->addWidget(&sb);
        vl->addWidget(&te);
        vl->addWidget(&le);
        vl->addWidget(&ib);
        setLayout(vl);

        connect(&sb,SIGNAL(clicked()),this,SLOT(startProcess()));
        connect(&ib,SIGNAL(clicked()),this,SLOT(doInput()));
        connect(&myProc,SIGNAL(readyReadStandardOutput()),this,SLOT(showOutput()));
        connect(&myProc,SIGNAL(readyReadStandardError()),this,SLOT(showOutput()));
}

void myProcess::startProcess()
{
        QString prog="C:\\WINDOWS\\system32\\cmd.exe";
     //   QString prog="C:\\Qt\\2010.05\\qt\\Forum\\testcon-build-desktop\\release\\testcon.exe";
        myProc.start(prog);
        if(myProc.waitForStarted())
                te.append(QString("Program <b>%1</b> started").arg(prog));
        else
                te.append(QString("Can't start program <b>%1</b>").arg(prog));
}

void myProcess::doInput()
{
        QString s=le.text()+"\n";
        if(myProc.write(s.toAscii())!=-1) le.clear();
}

void myProcess::showOutput()
{
        te.append(QString::fromLocal8Bit(myProc.readAllStandardOutput()));
        te.append(QString::fromLocal8Bit(myProc.readAllStandardError()));


Но мне нужно сделать чтобы небыло формы и программа работала с командной строкой и получала от нее ответы
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 2.11.2010, 20:15
Сообщение #5


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


создай консольный проект
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bigory
  опции профиля:
сообщение 2.11.2010, 20:26
Сообщение #6


Студент
*

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

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




Репутация:   0  


Почему консольный???
Мне нужно сделать невидимую программу, которая будет взаимодействовать постоянно с сервером.
Консольная программа будет видна пользователю
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 2.11.2010, 20:34
Сообщение #7


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


bigory,

Цитата(vadim303 @ 2.11.2010, 13:31) *
Хочу сделать что-то похожее на


откуда я могу знать, что делает этот код ? :) Там запускается консоль.

И вот, наконец-то ты человечьими словами говоришь задачу:
Цитата(bigory @ 2.11.2010, 22:26) *
Мне нужно сделать невидимую программу, которая будет взаимодействовать постоянно с сервером

1) совершенно неважно, видимо или невидимо окно (тут Вадим угадал-таки, смотри его пост, как скрыть)
2) совершенно неважно, есть ли окно вообще - серверу это безразлично

создаёшь сокет в main, безо всяких окон - и вперёд.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 2.11.2010, 20:41
Сообщение #8


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

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

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




Репутация:   94  


Цитата(bigory @ 2.11.2010, 23:26) *
Консольная программа будет видна пользователю
консольная программа видна пользователю только если ты используешь в проекте
CONFIG += console
а если не используешь, то не видна.

программа которая работает в фоне называется - демон (Linux) / служба (Windows)
смотри решение QtService
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bigory
  опции профиля:
сообщение 2.11.2010, 23:02
Сообщение #9


Студент
*

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

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




Репутация:   0  


Ну я еще только осваиваю Qt, поэтому мне не понятна запись:
QWidget::hide()
QWidget::setVisible(false)
Как это применить?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 2.11.2010, 23:23
Сообщение #10


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


bigory, это методы QWidget. Они не статические, поэтому можно вызвать только для объекта QWidget или производного класса от оного

QWidget w(указатель на родитель);
w.hide();

(это больше по C++ вопрос, чем по Qt)

Сообщение отредактировал Алексей1153 - 2.11.2010, 23:24
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.3.2024, 11:36