QT新手日记025 - W002程序代码

一、pro文件:W002.pro

cpp 复制代码
QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++17

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    main.cpp \
    wintwo.cpp

HEADERS += \
    wintwo.h

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

RESOURCES +=

二、头文件:wintwo.h

cpp 复制代码
#ifndef WINTWO_H
#define WINTWO_H

#include <QMainWindow>

class WinTwo : public QMainWindow
{
    Q_OBJECT

public:
    WinTwo(QWidget *parent = nullptr);
    ~WinTwo();
    QString  GetTipInformation(int Index,QDate d,QTime t,QString obj);
private:
    int nowIndex=0;
};
#endif // WINTWO_H

三、主程序:main.cpp

cpp 复制代码
#include "wintwo.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    WinTwo w;
    w.show();
    return a.exec();
}

四、核心程序:wintwo.cpp

cpp 复制代码
#include "wintwo.h"
#include<QGroupBox>
#include<QLabel>
#include<QComboBox>
#include<QDateEdit>
#include<QStringList>
#include<QTextEdit>
#include<QPushButton>
#include<QFile>
#include<QDir>
#include<QDebug>
#include<QGuiApplication>
#include<QScreen>


WinTwo::WinTwo(QWidget *parent)
    : QMainWindow(parent)
{
    setWindowTitle("QT第二个程序 - 每日一题");
    setFixedSize(304,504);
    QGroupBox *grp = new QGroupBox("每日一题",this);
    grp->move(2,2);
    grp->resize(300,500);

    QLabel *l1 = new QLabel("日期:",grp);
    l1->resize(80,30);
    l1->move(10,30);

    QLabel *l2 = new QLabel("时间:",grp);
    l2->resize(80,30);
    l2->move(10,60);

    QLabel *l3 = new QLabel("主题:",grp);
    l3->resize(80,30);
    l3->move(10,90);

    QDateEdit *cmbdate = new QDateEdit(grp);
    cmbdate->resize(120,30);
    cmbdate->move(95,30);
    cmbdate->setDate(QDate::currentDate());
    QTimeEdit *cmbtime = new QTimeEdit(grp);
    cmbtime->resize(120,30);
    cmbtime->move(95,60);
    cmbtime->setTime(QTime::currentTime());
    QComboBox *cmbobj = new QComboBox(grp);
    cmbobj->resize(120,30);
    cmbobj->move(95,90);

    cmbobj->addItems({"QWidget","QMainWindow","QDialog"});
    cmbobj->setCurrentIndex(0);

    QTextEdit *txt = new QTextEdit(grp);
    txt->resize(280,500-140);
    txt->move(10,130);
    txt->setReadOnly(true);
    QPushButton *btnup = new QPushButton("上一题",grp);
    btnup->resize(65,40);
    btnup->move(225,30);
    QPushButton *btndw = new QPushButton("下一题",grp);
    btndw->resize(65,40);
    btndw->move(225,80);
    connect(btnup,&QPushButton::clicked,this,[=](){
        if(nowIndex<=0)
        {
            nowIndex=100;
        }
        else
        {
            nowIndex--;
        }
          txt->setText(GetTipInformation(nowIndex,cmbdate->date(),cmbtime->time(),cmbobj->currentText()));

        //上一题
    });
    connect(btndw,&QPushButton::clicked,this,[=](){
        if(nowIndex>=100)
        {
            nowIndex=0;
        }
        else
        {
            nowIndex++;
        }
          txt->setText(GetTipInformation(nowIndex,cmbdate->date(),cmbtime->time(),cmbobj->currentText()));
        //上一题
    });
    txt->setText(GetTipInformation(nowIndex,cmbdate->date(),cmbtime->time(),cmbobj->currentText()));

    this->move((QGuiApplication::primaryScreen()->size().width()-this->width())/2,
               (QGuiApplication::primaryScreen()->size().height()-this->height())/2);
}

QString  WinTwo::GetTipInformation(int Index,QDate d,QTime t,QString obj)
{
    QString path=QDir::currentPath()+ "/TipFiles/Tipinfo"+QString::number(Index)+".txt";
    QFile file(path);
    QString dat="没有发现文件"+path;
    if(file.exists())
    {
        file.open(QIODevice::ReadOnly);
        dat=file.readAll();
        file.close();
    }
    QString result=QString("每日一题[%1 %2]=>%3:%4\n%5").
            arg(d.toString("yyyy-MM-dd")).arg(t.toString("hh:mm:ss")).arg(obj).
            arg(QString::number(Index)).arg(dat);

    return result;
}
WinTwo::~WinTwo()
{
}

五、每日一题内容以Tipinfo0..n.txt命名的文件放在编译目录下的TipFiles目录下。

完成的界面截图(Deepin系统)

相关推荐
用户805533698034 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
xcyxiner4 天前
DicomViewer (vcpkg Windows和ubuntu编译)7
qt
Quz9 天前
QML Hello World 入门示例
qt
xcyxiner12 天前
DicomViewer (dcmtk读取dcm文件)5
qt
xcyxiner13 天前
DicomViewer (后台线程处理文件)4
qt
xcyxiner13 天前
DicomViewer (添加模型类)3
qt
xcyxiner14 天前
DicomViewer (目录调整) 2
qt
xcyxiner14 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
LDR00616 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术16 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript