Singleton instance of QSplashScreen
-
@class MySplash : public QSplashScreen
{
Q_OBJECT
public:
explicit MySplash(QObject parent = 0);
static MySplash instance();private:
MySplash* _inst;
}@
.cpp
@
MySplash MySplash::_inst = 0;
MySplash* MySplash::instance()
{
if ( !_inst )
_inst = new MySplash();
return _inst;
}@ -
@class SplashScreen : public QSplashScreen{
public:
static SplashScreen* getInstance();
void destroyInstance();
void SetSplashScreen();
void SetMessage(const std::wstring& message);
QString *splashMessage;
CString progressText;private:
QSplashScreen *hostSplash_;
SplashScreen() {}~SplashScreen(){}
static SplashScreen* m_pInstance;
};@.h file
-
@SplashScreen* SplashScreen::m_pInstance = NULL;
SplashScreen* SplashScreen::getInstance() {
if(NULL == m_pInstance ) {
m_pInstance = new SplashScreen();
}
return m_pInstance;
}void SplashScreen::destroyInstance() {
delete m_pInstance;
m_pInstance = NULL;
}void SplashScreen::SetMessage(const std::wstring& message ) {
progressText = message.c_str();
char pC = (char)(LPCTSTR)progressText ;
splashMessage->append(QString::fromAscii(pC));
hostSplash_->showMessage(*splashMessage);}
void SplashScreen::SetSplashScreen() {
hostSplash_ = new QSplashScreen(QPixmap(":Resource Files/splash.jpg"));
}@ -
prakash02, and?
-
This is .cpp file.
I initialized the QApplication in main function, but my doubt does i can use the SplashScreen instance other than from main class.
Any help is appreciable.Thanks in advance.
-
prakash02, @SplashScreen* SplashScreen::m_pInstance = NULL;@ it's C style, it's better to use C++ style:
@SplashScreen* SplashScreen::m_pInstance = 0;@ -
And why do you use std::wstring instead QString?
-
I defined resource file of strings,now i want to use those messages to be display on QSplashScreen when the program execution calls that function which can be on different namespace or on different class.
-
Why do you use CString and std::wstring for setting/storing text? Why not QString? Also using CString and LPCTSTR type will break cross-platform compatibility.
-
Denis Kormalev. :)
-
2moderators of this section: please move this thread to more correspondent category (Desktop I think)
-
prakash02, how do you defiine resource file of strings?
-
Yes i can use QString, but previously those are used to display on the native windows dialog.Now I want to change those to QT to improve the look and feel.
-
try to use QObject::tr("") for strings instead string table in resource file.