Custom splashscreen with text: Difference between revisions
Jump to navigation
Jump to search
AutoSpider (talk | contribs) (Add "cleanup" tag) |
AutoSpider (talk | contribs) (Decode HTML entity names) |
||
Line 51: | Line 51: | ||
public: | public: | ||
customSplashScreen(const QPixmap& | customSplashScreen(const QPixmap& pixmap); | ||
~customSplashScreen(); | ~customSplashScreen(); | ||
virtual void drawContents(QPainter *painter); | virtual void drawContents(QPainter *painter); | ||
void showStatusMessage(const QString & | void showStatusMessage(const QString &message, const QColor &color = Qt::black); | ||
void setMessageRect(QRect rect, int alignment = Qt::AlignLeft); | void setMessageRect(QRect rect, int alignment = Qt::AlignLeft); | ||
Line 69: | Line 69: | ||
<code>#include "customSplashScreen.h" | <code>#include "customSplashScreen.h" | ||
customSplashScreen::customSplashScreen(const QPixmap& | customSplashScreen::customSplashScreen(const QPixmap& pixmap) | ||
{ | { | ||
QSplashScreen::setPixmap(pixmap); | QSplashScreen::setPixmap(pixmap); | ||
Line 85: | Line 85: | ||
}; | }; | ||
void customSplashScreen::showStatusMessage(const QString & | void customSplashScreen::showStatusMessage(const QString &message, const QColor &color) | ||
{ | { | ||
this->message = message; | this->message = message; |
Revision as of 17:02, 12 March 2015
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine. Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean. |
Custom splashscreen with text
Snippet how to create a splashscreen with opacity and dynamic text: screencap
Example of main:
QPixmap splashImage(":images/splash.png");
QPixmap splashMask(":images/splashmask.png");
customSplashScreen '''splash = new customSplashScreen(splashImage);
splash->setMessageRect(QRect::QRect(7, 253, 415, 14), Qt::AlignCenter); // Setting the message position.
QFont splashFont;
splashFont.setFamily("Arial");
splashFont.setBold(true);
splashFont.setPixelSize(9);
splashFont.setStretch(125);
splash->setFont(splashFont);
splash->setMask(splashMask);
splash->setWindowFlags(Qt::WindowStaysOnTopHint | Qt::SplashScreen);
splash->show();
/''' To intercept mousclick to hide splash screen. Since the
splash screen is typically displayed before the event loop
has started running, it is necessary to periodically call. */
app.processEvents();
splash->showStatusMessage(QObject::tr("Initializing…"));
/''' Some code here */
app.processEvents();
splash->showStatusMessage(QObject::tr("Loading something…"));
customSplashScreen.h:
#ifndef CUSTOMSPLASHSCREEN_H
#define CUSTOMSPLASHSCREEN_H
#include <QSplashScreen>
#include <QPainter>
class customSplashScreen
:public QSplashScreen
{
public:
customSplashScreen(const QPixmap& pixmap);
~customSplashScreen();
virtual void drawContents(QPainter *painter);
void showStatusMessage(const QString &message, const QColor &color = Qt::black);
void setMessageRect(QRect rect, int alignment = Qt::AlignLeft);
private:
QString message;
int alignement;
QColor color;
QRect rect;
};
#endif // CUSTOMSPLASHSCREEN_H
customSplashScreen.cpp:
#include "customSplashScreen.h"
customSplashScreen::customSplashScreen(const QPixmap& pixmap)
{
QSplashScreen::setPixmap(pixmap);
};
customSplashScreen::~customSplashScreen()
{
};
void customSplashScreen::drawContents(QPainter *painter)
{
QPixmap textPix = QSplashScreen::pixmap();
painter->setPen(this->color);
painter->drawText(this->rect, this->alignement, this->message);
};
void customSplashScreen::showStatusMessage(const QString &message, const QColor &color)
{
this->message = message;
this->color = color;
this->showMessage(this->message, this->alignement, this->color);
};
void customSplashScreen::setMessageRect(QRect rect, int alignement)
{
this->rect = rect;
this->alignement = alignement;
};
Splash PNG: splash
Mask PNG: