{
Q_OBJECT
//
public:
Preload
( int msec ,
const QString tex
);
void SettoClose();
protected:
int timeemust;
bool selfclose;
int r_start;
int r_stop;
int r_status;
////void resizeEvent( QResizeEvent * );
private:
signals:
public slots:
void Increment();
Preload
::Preload( int msec ,
const QString tex
){
//////////QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
display
= QPixmap(":/img/about_as_image.png");
textd = tex;
if (msec !=0) {
selfclose = true;
timeemust = msec;
} else {
selfclose = false;
timeemust = 1200;
}
QRect screenSize
= qApp
->desktop
()->availableGeometry
();
setWindowFlags ( Qt::Popup );
///////////qDebug() << "### screenSize -> " << screenSize;
r_start = 33;
r_status = r_start;
r_stop = 469;
////////////display = QPixmap("test.png");
QSize actual_result
= display.
size();
resize(actual_result);
qApp->processEvents();
Increment();
qApp->processEvents();
}
{
/////qDebug() << "### nullimage -> " << display.isNull();
QColor fillrectcolor
= Qt
::red;
QColor shapepicture
= Qt
::white;
painter.
setRenderHint(QPainter::Antialiasing,
true);
painter.drawPixmap(0,0,display);
pen.setStyle( Qt::SolidLine );
pen.setWidth( 3 );
pen.setColor(fillrectcolor);
painter.setPen( pen);
pen.setWidth( 2 );
pen.setColor(textColor);
painter.setFont( f );
painter.setPen( pen);
int largo = fm.width(textd);
painter.
drawText(QPointF((display.
width() / 2) - (largo
/ 2),
118),textd
);
}
void Preload::SettoClose()
{
selfclose = true;
close();
}
void Preload::Increment()
{
if (r_status > r_stop) {
if (selfclose) {
close();
return;
} else {
r_status = r_start;
}
}
int distance = r_stop - r_start;
int piesesec = timeemust / distance; /* 100% */
r_status = r_status + 1;
update();
QTimer::singleShot(piesesec,
this,
SLOT(Increment
()));
qApp->processEvents();
}
class Preload : public QWidget
{
Q_OBJECT
//
public:
Preload( int msec , const QString tex );
void SettoClose();
protected:
QPixmap display;
QString textd;
int timeemust;
bool selfclose;
int r_start;
int r_stop;
int r_status;
void paintEvent(QPaintEvent *e);
////void resizeEvent( QResizeEvent * );
private:
signals:
public slots:
void Increment();
Preload::Preload( int msec , const QString tex )
{
//////////QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
display = QPixmap(":/img/about_as_image.png");
textd = tex;
if (msec !=0) {
selfclose = true;
timeemust = msec;
} else {
selfclose = false;
timeemust = 1200;
}
QRect screenSize = qApp->desktop()->availableGeometry();
setWindowFlags ( Qt::Popup );
///////////qDebug() << "### screenSize -> " << screenSize;
r_start = 33;
r_status = r_start;
r_stop = 469;
////////////display = QPixmap("test.png");
QSize actual_result = display.size();
resize(actual_result);
qApp->processEvents();
Increment();
qApp->processEvents();
}
void Preload::paintEvent(QPaintEvent *e)
{
/////qDebug() << "### nullimage -> " << display.isNull();
QColor textColor = QColor(147,147,147);
QColor fillrectcolor = Qt::red;
QColor shapepicture = Qt::white;
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.drawPixmap(0,0,display);
QPen pen;
pen.setStyle( Qt::SolidLine );
pen.setWidth( 3 );
pen.setColor(fillrectcolor);
painter.setPen( pen);
painter.drawLine (QPoint(r_start,96),QPoint(r_status,96));
pen.setWidth( 2 );
pen.setColor(textColor);
QFont f( "arial", 12, QFont::Bold );
painter.setFont( f );
painter.setPen( pen);
QFontMetrics fm = painter.fontMetrics();
int largo = fm.width(textd);
painter.drawText(QPointF((display.width() / 2) - (largo / 2),118),textd);
}
void Preload::SettoClose()
{
selfclose = true;
close();
}
void Preload::Increment()
{
if (r_status > r_stop) {
if (selfclose) {
close();
return;
} else {
r_status = r_start;
}
}
int distance = r_stop - r_start;
int piesesec = timeemust / distance; /* 100% */
r_status = r_status + 1;
update();
QTimer::singleShot(piesesec, this, SLOT(Increment()));
qApp->processEvents();
}
To copy to clipboard, switch view to plain text mode
Bookmarks