void MainWindow::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
// -- 背景画像の表示
drawPaintClock(&painter);
// -- 時分秒画像の回転処理
QDateTime dt = QDateTime::currentDateTime();
int hh = dt.time().hour() >= 12 ? dt.time().hour() -12:dt.time().hour() ;
int mini = dt.time().minute();
int sec = dt.time().second();
QPainter ptrHH(this);
drawPaintClockHH(&ptrHH,hh,mini);
QPainter ptrMM(this);
drawPaintClockMM(&ptrMM,mini);
QPainter ptrSS(this);
drawPaintClockSS(&ptrSS,sec);
}
void MainWindow::drawPaintClockHH(QPainter *ptrHH,int hh,int mini)
{
QSize sz = this->frameSize();
// -- Image Frameの縦横サイズ
int bsWorH = (sz.width() > sz.height() ? sz.height() : sz.width() - 40);
qreal CIRCLE_RADIUS = 360;
qreal f_HH = (hh*60+mini+1) * (CIRCLE_RADIUS / (12*60));
QImage qimg = s_HariImage.scaled(
bsWorH,
bsWorH,
Qt::KeepAspectRatio,
Qt::FastTransformation
);
QPixmap destpix = QPixmap::fromImage(qimg);
// --- Image位置の変更
ptrHH->translate(0,(sz.height() - destpix.size().width()) /2);
// --- Image の回転
ptrHH->translate(destpix.size().width()/2,destpix.size().height()/2);
ptrHH->rotate(f_HH);
ptrHH->translate(-destpix.size().width()/2,-destpix.size().height()/2);
QRect d_rect1( 0,
0,
destpix.size().width(),destpix.size().height());
ptrHH->drawPixmap(d_rect1, destpix);
}
void MainWindow::drawPaintClockMM(QPainter *ptrMM,int mini){
・・・ 以下同文
}
void MainWindow::drawPaintClockSS(QPainter *ptrSS,int sec){
・・・ 以下同文
}