最近使用QT做毕业设计,其中用到了对话框,但系统默认的对话框不能满足我的需求,于是决定自己来封装一个,这需要根据QT提供的QDialog基类来建立,以下附上头文件及实现文件,已测试通过。
#ifndef MYRMDIALOG_H
#define MYRMDIALOG_H
#include <QDialog>
#include <QCheckBox>
#include <QDateTimeEdit>
#include <QDateEdit>
#include <QTimeEdit>
#include <QPushButton>
#include <QHBoxLayout>
#include <QVBoxLayout>
class MyRmDialog : public QDialog
{
Q_OBJECT
public:
MyRmDialog(QWidget *parent = 0);
private:
QDateTimeEdit *dateTimeEdit;
QDateEdit *dateEdit;
QTimeEdit *timeEdit;
QCheckBox *everyDay;
QPushButton *dateBtn;
QPushButton *timeBtn;
QPushButton *okBtn;
QPushButton *cancelBtn;
QHBoxLayout *editLayout;
QHBoxLayout *spinLayout;
QHBoxLayout *btnLayout;
QVBoxLayout *mainLayout;
private slots:
void dateClicked();
void timeClicked();
void okClicked();
void cancelClicked();
void timeoutslot();
};
#endif // MYRMDIALOG_H
.cpp
#include "MyRmDialog.h"
#include <QTextCodec>
#include <QTimer>
MyRmDialog::MyRmDialog(QWidget *parent) :
QDialog(parent)
{
QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk"));
setWindowTitle(tr("编辑提醒"));
dateTimeEdit=new QDateTimeEdit;
dateTimeEdit->setDate(QDate::currentDate());
dateTimeEdit->setTime(QTime::currentTime());
dateEdit=new QDateEdit(QDate::currentDate());
timeEdit=new QTimeEdit(QTime::currentTime());
dateEdit->setReadOnly(true);
timeEdit->setReadOnly(true);
dateBtn = new QPushButton(tr("设置日期"));
connect(dateBtn,SIGNAL(clicked()),this,SLOT(dateClicked()));
timeBtn = new QPushButton(tr("设置时间"));