Qt_GUI_IM_3_3 - 8BitsCoding/RobotMentor GitHub Wiki

목차


간단예시

void DataTimeWidget::updateTime()
{
    timeString = QTime::currentTime().toString();
    labelBottom->setText(timeString);

    if(dataString != (QData::currentData().toString(Qt::TextData))) {
        qDebug() << "Data has changed";
        dataString = QData::currentData().toString(Qt::TextData);
        lavelTop->setText(dataString);
    }
}

Code


DateTimeWidget.h

#ifndef DATETIMEWIDGET_H
#define DATETIMEWIDGET_H

#include <QWidget>
#include <QDate>
#include <QLabel>
#include <QTimer>

class DateTimeWidget : public QWidget
{
    Q_OBJECT
public:
    explicit DateTimeWidget(QWidget *parent = nullptr);

signals:

public slots:
    void updateTime();

private:
    QTimer * timer;
    QLabel * labelTop;//Date
    QLabel * labelBottom;//Time
    QString dateString;
    QString timeString;
};

#endif // DATETIMEWIDGET_H

DateTimeWidget.cpp

#include "datetimewidget.h"
#include <QVBoxLayout>

DateTimeWidget::DateTimeWidget(QWidget *parent) : QWidget(parent)
{
    QVBoxLayout * layout = new QVBoxLayout(this);
    QFont mFont("Consolas", 20, QFont::Bold);
    QSizePolicy policy(QSizePolicy::Expanding,QSizePolicy::Fixed);


    dateString = QDate::currentDate().toString(Qt::TextDate);
    labelTop = new QLabel(this);
    labelTop->setText(dateString);
    labelTop->setFont(mFont);
    labelTop->setAlignment(Qt::AlignCenter);
    //setSizePolicy(policy);


    timeString = QTime::currentTime().toString();
    labelBottom = new QLabel(this);
    labelBottom->setText(timeString);
    labelBottom->setFont(mFont);
    labelBottom->setAlignment(Qt::AlignCenter);
    labelBottom->setSizePolicy(policy);
    QString css = QString("background-color : #00eff9; color : #fffff1");
    labelBottom->setStyleSheet(css);

    layout->addWidget(labelTop);
    layout->addWidget(labelBottom);
    setLayout(layout);
    setSizePolicy(policy);

    //Set up timer
    timer = new QTimer(this);
    timer->setInterval(1000);
    connect(timer,&QTimer::timeout,this,&DateTimeWidget::updateTime);
    timer->start();


}

void DateTimeWidget::updateTime()
{
    timeString = QTime::currentTime().toString();
    labelBottom->setText(timeString);

    if(dateString != (QDate::currentDate().toString(Qt::TextDate))){
        dateString = QDate::currentDate().toString(Qt::TextDate);
        labelTop->setText(dateString);
    }
}

Widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include "datetimewidget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    DateTimeWidget * datetimeWidget = new DateTimeWidget(this);

    ui->verticalLayout->addWidget(datetimeWidget);


}

Widget::~Widget()
{
    delete ui;
}
⚠️ **GitHub.com Fallback** ⚠️