crossplatform.ru

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


  Ответ в Не закрывается windget и вслед за них - приложение.
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Andrewshkovskii Дата 30.3.2009, 23:14
  ну я пока черезе qApp.quit() решил проблему...всем спасибо..
igor_bogomolov Дата 30.3.2009, 23:13
  Еще как вариант, можно установить Qt::WA_DeleteOnClose для виджета
setAttribute(Qt::WA_DeleteOnClose);
Andrewshkovskii Дата 30.3.2009, 22:19
  Да тут проблема в том, что при нажатии "ОК" формочку показывает, а не скрывает...сейчас попробую. Просто это получаются опять костыли...
SABROG Дата 30.3.2009, 22:17
  quitOnLastWindowClosed стоит по-умолчанию, ну попробуй qApp->quit(); Сложно что-либо сказать.
Andrewshkovskii Дата 30.3.2009, 22:04
 
main.cpp

#include <QCleanlooksStyle>
#include <qtextcodec.h>
#include "widget.h"

int main(int argc, char *argv[])
{
QApplication::setStyle(new QCleanlooksStyle);
QApplication a(argc, argv);
QTextCodec *codec = QTextCodec::codecForName("CP1251");
QTextCodec::setCodecForCStrings(codec);
    ColorTestServer *server= new ColorTestServer();
    server->show();
    return server->exec();
}




ColorTestServer.h

#ifndef ColorTestServer_H
#define ColorTestServer_H

#include <QtGui/QWidget>
#include <QtGui/QApplication>
#include <QtGui/QLabel>
#include <QtGui/QMessageBox>
#include <QPushButton>
#include <QFile>
#include <QTextStream>

class ColorTestServer : public QDialog
{
    Q_OBJECT

public:
    ColorTestServer(QWidget *parent = 0);
    ~ColorTestServer();
private :
        QLabel statusLabel;
};

#endif // ColorTestServer_H




ColorTestServer.cpp

#include "widget.h"

ColorTestServer::ColorTestServer(QWidget *parent)
    : QDialog(parent)
{
    this->setWindowTitle("Color Test Server");
    QFile colorDb("Colors1.dat");
     if(!colorDb.open(QIODevice::ReadOnly))
    {
        QMessageBox::critical(this,"Ошибка открытия файла", "Не возможно прочитать файл базы."
                              "\nПриложение будет закрыто.");
        close();
        return;
     }
}

ColorTestServer::~ColorTestServer()
{

}




Проблема : при возникновении ошибки - вызывается QMessageBox, в нем 1 кнопочка, при её нажатии, по-логике, должно приложение закрыватся(т.е. должен виджет закрываться, а с ним и приложение), но этого почему-то не происходит. Я совсем отупел...В чем дело?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 22.10.2021, 6:42