Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не закрывается windget и вслед за них - приложение.
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
Andrewshkovskii
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 кнопочка, при её нажатии, по-логике, должно приложение закрыватся(т.е. должен виджет закрываться, а с ним и приложение), но этого почему-то не происходит. Я совсем отупел...В чем дело?
SABROG
quitOnLastWindowClosed стоит по-умолчанию, ну попробуй qApp->quit(); Сложно что-либо сказать.
Andrewshkovskii
Да тут проблема в том, что при нажатии "ОК" формочку показывает, а не скрывает...сейчас попробую. Просто это получаются опять костыли...
igor_bogomolov
Еще как вариант, можно установить Qt::WA_DeleteOnClose для виджета
setAttribute(Qt::WA_DeleteOnClose);
Andrewshkovskii
ну я пока черезе qApp.quit() решил проблему...всем спасибо..
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2021 IPS, Inc.