Russian Qt Forum
Октябрь 01, 2024, 16:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: QProces::close  (Прочитано 7201 раз)
CJ1
Гость
« : Июнь 21, 2012, 12:23 »

Нимогу понять почему не работает
Пишу так
Код:
    QSettings seting("ServerBD","Net");
    m_process = new QProcess(this);
    connect(m_process, SIGNAL(readyReadStandardOutput()), SLOT(processout()));
    m_process->start("cmd /C  mysql -u"+seting.value("LoginMySql","root").toString()+" -P"+seting.value("PortMySQL","3306").toString()+" -h"+seting.value("hostMySql").toString()+" -p"+seting.value("PassMySql").toString());
    QString s = "CREATE DATABASE IF NOT EXISTS torgbd1 \\g \r\n \\q \r\n";
    m_process->write(s.toAscii());


    m_process->close();
    delete m_process;

Не работает если пишешь
   m_process->close();
    delete m_process;

если убрать то работает
Записан
mutineer
Гость
« Ответ #1 : Июнь 21, 2012, 12:35 »

что именно "не работает"?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Июнь 21, 2012, 12:53 »

А с чего Вы взяли что на момент close() процесс уже сделал все что Вам нужно? Он ведь выполняется асинхронно (параллельно Вашему коду) и мог даже не начаться - а Вы уже close(). Дождитесь напр сигнала finished

Два общих замечания

- не спешите бомбить форум вопросами, сначала загляните в Assistant
- это форум (а не класс русского языка), но все же просьба с грамматикой повнимательнее
Записан
CJ1
Гость
« Ответ #3 : Июнь 21, 2012, 14:15 »

Ладно....... Не буду больше так писать.... Это привычка такая, я уже не один форум заморил так, взять даже http://forum.sources.ru )))))
Записан
CJ1
Гость
« Ответ #4 : Июнь 21, 2012, 15:35 »

Вот опять новая проблема!
Код:
bool MainWindow::event(QEvent * m)
{

    if (m->type() == m->WindowStateChange){
        if(this->isMinimized())
            setHidden(true);
              minimized = true;
    }
    return true;
}

Хочу чтоб при сворачивании окно исчезало, за место этого оно становится белым внутри и стоит!
Записан
Serr500
Гость
« Ответ #5 : Июнь 21, 2012, 15:42 »

return ParentType::event(m);
Записан
CJ1
Гость
« Ответ #6 : Июнь 21, 2012, 15:45 »

Код:
bool MainWindow::event(QEvent * m)
{

    if (m->type() == m->WindowStateChange){
        if(this->isMinimized())
            setHidden(true);
    }
    return MainWindow::event(m);
}
Сходу вылазиет "Прекращения работы программы", на Win 7
Записан
CJ1
Гость
« Ответ #7 : Июнь 21, 2012, 15:54 »

Что это за такая херь можете объяснить?
Записан
CJ1
Гость
« Ответ #8 : Июнь 21, 2012, 15:57 »

Сделал так
Код:
bool MainWindow::event(QEvent * event)
{

    if (event->type() == event->WindowStateChange){
        if(this->isMinimized())
            setHidden(true);
    }
    return QMainWindow::event(event);
}

Ошибку не дает но экран по прежнему становится белым
Записан
CJ1
Гость
« Ответ #9 : Июнь 21, 2012, 16:21 »

Помогите ктонибудь
Записан
CJ1
Гость
« Ответ #10 : Июнь 21, 2012, 16:38 »

Вот так работает!
Код:
bool MainWindow::event(QEvent * event)
{
    if (event->type() == event->WindowStateChange){
        if(this->isMinimized())
            QTimer::singleShot(0, this, SLOT(hide()));
    }
    return QMainWindow::event(event);
}

Так и непонятно в чем же косяк!
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #11 : Июнь 21, 2012, 16:41 »

Помогите ктонибудь

Цитировать
Это я, Пятачок, спасите, помогите!
Улыбающийся Чего паникуем? Спокойно вставляем отладочную печать (напр перед setHidden) и смотрим. А потом уже прикидываем стоит ли беспокоить людей
Записан
CJ1
Гость
« Ответ #12 : Июнь 21, 2012, 16:53 »

Да ладно, пусть уже так работает.
Теперь нашел это на разных форумах, все делают через таймер
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #13 : Июнь 21, 2012, 17:14 »

Так и непонятно в чем же косяк!
А косяк в том, что нельзя в обработчике событий порождать новое событие.
Записан

Qt 5.11/4.8.7 (X11/Win)
CJ1
Гость
« Ответ #14 : Июнь 21, 2012, 17:20 »

хм...... понятно... А как тогда должен реализовываться этот?
« Последнее редактирование: Июнь 21, 2012, 19:43 от CJ1 » Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.159 секунд. Запросов: 23.