qt Date/Time Edit

本书以Qt4.7为依据,深入讲解了Linux环境下图形界面编程与数据库编程的结合应用,包括控件设计、实例操作及实际工程项目的开发与分析。通过具体实例展示了如何在Qt4.7中实现日期时间编辑功能,涉及日期、时间的读写、同步及编辑过程,以及利用定时器实现动态更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux环境下Qt4图形界面与MySQL编程在Linux操作系统环境下,图形界面与数据库编程技术越来越受到广泛重视。本书以图形界面编程控件与数据库编程基础→简单易学的实例→实际工程项目开发与场景分析为写作主线,以当前最新的Qt4.7为依据,采... 立即去当当网订购首先创建标准的Qt Gui Application项目,把项目在主界面中自动生成的toolBar、menuBar和statusBar删除,界面设计结果如图3-83所示。 1.控件说明在属性编辑窗口中对控件的属性进行修改,修改内容如表3-22所示。 2.示例说明程序执行后,dateTimeEdit显示当前系统时间,并时刻更新;dateTimeEdit、dateEdit和timeEdit是只读的;单击按钮“Edit Date”,可以编辑dateEdit,dateTimeEdit和dateEdit是同步的。单击按钮“OK”,结束编辑,dateEidt变成只读的;单击按钮“Edit Time”,可以编辑timeEdit,dateTimeEdit和timeEdit是同步的。单击按钮“OK”,结束编辑,timeEidt变成只读的。 3.示例实现头文件mainwindow.h(文中的粗体为需要添加的内容): #ifndef MAINWINDOW_H #define MAINWINDOW_H #include namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ∼MainWindow(); private: Ui::MainWindow *ui; private slots:  //声明槽函数 void on_btnEditTime_clicked(); void on_btnOk_clicked(); void on_btnEditDate_clicked(); void timeoutslot(); }; #endif // MAINWINDOW_H 声明四个槽函数,槽函数timeoutslot()是自己声明的,对应定时器timer;其他三个槽函数都是通过右击控件→Go to slots自动生成的,所以不用在实现文件中添加映射函数。在主窗体mainwindow.cpp文件中自动生成如下代码: #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } 在主窗体mainwindow.cpp文件中添加的头文件: #include 在主窗体mainwindow.cpp文件中构造函数: /***构造函数***/ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); /*********初始化**********************************/ ui->dateTimeEdit->setDate(QDate::currentDate());       //获取当前日期 ui->dateTimeEdit->setTime(QTime::currentTime());//获取当前时间 QTimer *timer=new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(timeoutslot()));//timeoutslot()为自定义槽 /*********启动timer定时器******************************/ timer->start(1000); } 在主窗体mainwindow.cpp文件中添加QPushButton btnEditDate的槽函数: /***********定义槽函数,编辑date***********************/ void MainWindow::on_btnEditDate_clicked() { ui->dateEdit->setReadOnly(false); //设置dateEdit的只读属性为假 connect(ui->dateEdit,SIGNAL(dateChanged(QDate)),ui->dateTimeEdit, SLOT(setDate(QDate))); } 在主窗体mainwindow.cpp文件中添加QPushButton btnEditTime的槽函数: /**********定义槽函数,编辑时间***************************/ void MainWindow::on_btnEditTime_clicked() { ui->timeEdit->setReadOnly(false); //设置timeEdit的只读属性为假 connect(ui->timeEdit,SIGNAL(timeChanged(QTime)),ui->dateTimeEdit, SLOT(setTime(QTime))); } 在主窗体mainwindow.cpp文件中添加QPushButton btnOk的槽函数: /***********定义槽函数,保存编辑***************************/ void MainWindow::on_btnOk_clicked() { ui->dateEdit->setReadOnly(true); ui->timeEdit->setReadOnly(true); } 在主窗体mainwindow.cpp文件中添加QTimer timer的槽函数: /***********定义timer的槽函数*********************************/ void MainWindow::timeoutslot() { QDate date = ui->dateTimeEdit->date(); QTime time = ui->dateTimeEdit->time(); QTime time1(23,59,59); if(time == time1) { date = date.addDays(1); } time = time.addSecs(1); ui->dateTimeEdit->setDate(date); ui->dateTimeEdit->setTime(time); } 主文件main.cpp没有进行任何更改,使用项目自动生成的即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值