#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDateTime>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
init();
year=QDate::currentDate().year();
month=QDate::currentDate().month();
day=QDate::currentDate().day();
current_year=year;
current_month=month;
current_day=day;
set_days_list(year,month);
set_days_text();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::init()
{
ui->label1->clear();
ui->label2->clear();
ui->label3->clear();
ui->label4->clear();
ui->label5->clear();
ui->label6->clear();
ui->label7->clear();
ui->label8->clear();
ui->label9->clear();
ui->label10->clear();
ui->label11->clear();
ui->label12->clear();
ui->label13->clear();
ui->label14->clear();
ui->label15->clear();
ui->label16->clear();
ui->label17->clear();
ui->label18->clear();
ui->label19->clear();
ui->label20->clear();
ui->label21->clear();
ui->label22->clear();
ui->label23->clear();
ui->label24->clear();
ui->label25->clear();
ui->label26->clear();
ui->label27->clear();
ui->label28->clear();
ui->label29->clear();
ui->label30->clear();
ui->label31->clear();
ui->label32->clear();
ui->label33->clear();
ui->label34->clear();
ui->label35->clear();
ui->label36->clear();
ui->label37->clear();
ui->label38->clear();
ui->label39->clear();
ui->label40->clear();
ui->label41->clear();
ui->label42->clear();
ui->label1->setStyleSheet("color:black;background-color:transparent;");
ui->label2->setStyleSheet("color:black;background-color:transparent;");
ui->label3->setStyleSheet("color:black;background-color:transparent;");
ui->label4->setStyleSheet("color:black;background-color:transparent;");
ui->label5->setStyleSheet("color:black;background-color:transparent;");
ui->label6->setStyleSheet("color:black;background-color:transparent;");
ui->label7->setStyleSheet("color:black;background-color:transparent;");
ui->label8->setStyleSheet("color:black;background-color:transparent;");
ui->label9->setStyleSheet("color:black;background-color:transparent;");
ui->label10->setStyleSheet("color:black;background-color:transparent;");
ui->label11->setStyleSheet("color:black;background-color:transparent;");
ui->label12->setStyleSheet("color:black;background-color:transparent;");
ui->label13->setStyleSheet("color:black;background-color:transparent;");
ui->label14->setStyleSheet("color:black;background-color:transparent;");
ui->label15->setStyleSheet("color:black;background-color:transparent;");
ui->label16->setStyleSheet("color:black;background-color:transparent;");
ui->label17->setStyleSheet("color:black;background-color:transparent;");
ui->label18->setStyleSheet("color:black;background-color:transparent;");
ui->label19->setStyleSheet("color:black;background-color:transparent;");
ui->label20->setStyleSheet("color:black;background-color:transparent;");
ui->label21->setStyleSheet("color:black;background-color:transparent;");
ui->label22->setStyleSheet("color:black;background-color:transparent;");
ui->label23->setStyleSheet("color:black;background-color:transparent;");
ui->label24->setStyleSheet("color:black;background-color:transparent;");
ui->label25->setStyleSheet("color:black;background-color:transparent;");
ui->label26->setStyleSheet("color:black;background-color:transparent;");
ui->label27->setStyleSheet("color:black;background-color:transparent;");
ui->label28->setStyleSheet("color:black;background-color:transparent;");
ui->label29->setStyleSheet("color:black;background-color:transparent;");
ui->label30->setStyleSheet("color:black;background-color:transparent;");
ui->label31->setStyleSheet("color:black;background-color:transparent;");
ui->label32->setStyleSheet("color:black;background-color:transparent;");
ui->label33->setStyleSheet("color:black;background-color:transparent;");
ui->label34->setStyleSheet("color:black;background-color:transparent;");
ui->label35->setStyleSheet("color:black;background-color:transparent;");
ui->label36->setStyleSheet("color:black;background-color:transparent;");
ui->label37->setStyleSheet("color:black;background-color:transparent;");
ui->label38->setStyleSheet("color:black;background-color:transparent;");
ui->label39->setStyleSheet("color:black;background-color:transparent;");
ui->label40->setStyleSheet("color:black;background-color:transparent;");
ui->label41->setStyleSheet("color:black;background-color:transparent;");
ui->label42->setStyleSheet("color:black;background-color:transparent;");
}
void MainWindow::set_days_text()
{
for(int i=0;i<days_list.length();i++){
int index=i+1;
switch (index) {
case 1:ui->label1->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 2:ui->label2->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 3:ui->label3->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 4:ui->label4->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 5:ui->label5->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 6:ui->label6->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 7:ui->label7->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 8:ui->label8->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 9:ui->label9->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 10:ui->label10->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 11:ui->label11->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 12:ui->label12->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 13:ui->label13->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 14:ui->label14->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 15:ui->label15->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 16:ui->label16->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 17:ui->label17->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 18:ui->label18->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 19:ui->label19->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 20:ui->label20->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 21:ui->label21->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 22:ui->label22->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 23:ui->label23->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 24:ui->label24->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 25:ui->label25->setText(days_list[i]);set_label_style(index,year,month,days_list[i].toInt());break;
case 26:ui->label26->setText(days_list[i]);set_label_style(index
Qt自制的万年历小程序
需积分: 0 153 浏览量
更新于2023-02-19
2
收藏 22KB ZIP 举报
【Qt自制的万年历小程序】是一个利用Qt框架开发的小型应用程序,主要功能是显示从公元1年至公元9999年的日期,提供便捷的日历查看功能。Qt是一个跨平台的C++图形用户界面库,它允许开发者创建出美观、功能丰富的桌面及移动应用。在本文中,我们将深入探讨Qt框架的使用以及如何构建一个万年历程序。
1. **Qt框架介绍**
Qt由Qt Company提供,支持多种操作系统,包括Windows、Linux、macOS、Android和iOS等。它提供了丰富的API,用于构建GUI(图形用户界面)、网络编程、数据库连接、多媒体处理等。Qt使用信号和槽机制,使得组件间的通信变得简单而高效。
2. **构建万年历界面**
开发万年历小程序首先需要设计UI界面。在Qt中,可以使用QDesigner工具来绘制布局,包括日历视图、标题栏、按钮等元素。完成后,将.ui文件转换为.CPP和.H文件,供代码编译使用。
3. **Qt Widgets与布局管理**
在设计界面时,会用到Qt的各种Widgets,如QPushButton、QLabel、QTableWidget等。布局管理器(如QVBoxLayout、QHBoxLayout、QGridLayout)用于自动调整控件的位置和大小,以适应不同分辨率的屏幕。
4. **日期与时间处理**
Qt提供了QDate、QTime、QDateTime类来处理日期和时间。在万年历程序中,我们需要使用QDate类来获取和展示每一天。通过遍历从1月1日到12月31日的日期,我们可以填充日历视图。
5. **事件处理与用户交互**
使用信号和槽机制,我们可以监听用户的点击事件,比如点击某一天,程序可以高亮选中的日期,或者弹出相关信息。比如,点击后显示该日期对应的星期、节假日等信息。
6. **跨平台性**
由于Qt的跨平台特性,这个万年历小程序可以在多种操作系统上运行,只需编译一次代码,无需针对每个平台做额外的适配工作。
7. **编译与调试**
使用qmake工具生成Makefile,然后使用make命令进行编译。Qt Creator是一款集成开发环境,提供代码编辑、调试、构建等功能,能有效提升开发效率。
8. **优化与美化**
考虑到用户体验,可以对日历样式进行定制,如更改字体、颜色、背景等。此外,还可以添加动画效果,使用户操作更加流畅。
9. **测试与发布**
在完成开发后,需要进行全面的测试,确保所有功能正常,无bug。然后,可以打包成可执行文件或安装包,分享给他人使用。
通过以上步骤,我们就可以使用Qt框架制作出一个功能完备、界面友好的万年历小程序。这个过程涵盖了Qt的多个核心概念,对于学习和掌握Qt编程有很好的实践意义。
不朽の燃梦
- 粉丝: 419
- 资源: 5
最新资源
- Origin教程007所需练习数据
- 高速脉冲与高速计数指令.pdf
- 1.5T气缸气动式压机机械设计图纸+PPT+说明文档+技术方案资料+其它技术资料100%好用超级好的技术资料.zip
- 120°模温机工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
- 毕设和企业适用springboot自动化仓库管理平台类及智能会议管理平台源码+论文+视频.zip
- 毕设和企业适用springboot自动化仓库管理平台类及智能电商平台源码+论文+视频.zip
- 毕设和企业适用springboot自动化仓库管理平台类及智能办公平台源码+论文+视频.zip
- 毕设和企业适用springboot智能云服务平台类及企业供应链平台源码+论文+视频.zip
- 毕设和企业适用springboot自动化仓库管理平台类及智能客服系统源码+论文+视频.zip
- 毕设和企业适用springboot智能云服务平台类及企业数字资产管理平台源码+论文+视频.zip
- 毕设和企业适用springboot智能云服务平台类及企业云管理平台源码+论文+视频.zip
- 毕设和企业适用springboot智能云服务平台类及视频编辑平台源码+论文+视频.zip
- 毕设和企业适用springboot智能云服务平台类及视觉识别平台源码+论文+视频.zip
- 毕设和企业适用springboot智能云服务平台类及视频流平台源码+论文+视频.zip
- 毕设和企业适用springboot智能云服务平台类及数据处理平台源码+论文+视频.zip
- 毕设和企业适用springboot智能云服务平台类及虚拟银行平台源码+论文+视频.zip