何がいけなかったのかわからないので、ここで質問させてください。以下に定義する BOBSNetworkSessionManager という単純なクラスを作成しました。シグナルとスロットを使用できるように QOBject を継承する単純なクラスですが、ダイアログや関連するウィンドウはありません。最終的にログイン ダイアログが呼び出され、資格情報を使用して、作成した tcp サーバーに接続します。このクラスは、サーバーに接続され、15 分以内に使用された場合にのみ正常に動作するため、プログラムの接続状態を管理する層として機能します。これは pci 準拠のためです。これらの条件が真でない場合、このクラスはウィンドウをロックし、新しいログインを強制します。現時点では、資格情報が渡され、サーバーに接続されているかのように、メインウィンドウを任意に開こうとしています。問題は、メインウィンドウを開くとすぐに消えることです。なぜそれが消えているのか理解できないようです。すべてのファイルを含めました。
BOBSDCNetworkSessionManager .h ヘッダー ファイル
#ifndef BOBSDCNETWORKSESSIONMANAGER_H
#define BOBSDCNETWORKSESSIONMANAGER_H
#include <QObject>
#include <QSettings>
class BOBSDCNetworkSessionManager : public QObject
{
Q_OBJECT
public:
explicit BOBSDCNetworkSessionManager(QObject *parent = 0);
protected:
void destroyed(QObject *);
signals:
public slots:
private:
void readSettings();
void writeSettings();
QSettings networkSettings;
};
#endif // BOBSDCNETWORKSESSIONMANAGER_H
BOBSDCNetworkSessionManager 実装 .cpp ファイル
#include "bobsdcnetworksessionmanager.h"
#include "bobsmainwindow.h"
BOBSDCNetworkSessionManager::BOBSDCNetworkSessionManager(QObject *parent) :
QObject(parent)
{
BOBSMainWindow w;
w.show();
}
Main.cpp ファイル
#include "bobsdcnetworksessionmanager.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
a.setApplicationName("Enterprise Management Suite");
a.setApplicationVersion("Beta Version: 0.0.0.01");
a.setOrganizationName("Enigma Web Consulting");
a.setOrganizationDomain("http://www.EnigmaWebCo.com");
BOBSDCNetworkSessionManager netMgr;
return a.exec();
}