Qt之日历组件QCalendarWidget及日期、时间控件

Qt之日历组件QCalendarWidget及日期、时间控件_第1张图片

二、主要源码

2.1  日历控件(calendarWidget)

    //窗口尺寸
    this->resize(600,500);
    calendar_label = new QLabel(this);
    calendar_label->setText("选择日期");
    //标签以及编辑框位置
    calendar_label->setGeometry(QRect(100,70,100,25));
    calendar_Edit = new QLineEdit(this);
    calendar_Edit->setGeometry(QRect(180,70,150,25));
    //cursorPositionChanged触发的事件
    connect(calendar_Edit,SIGNAL(cursorPositionChanged(int,int)),this,SLOT(showTime()));
    //实例时间控件
    calendarWidget = new QCalendarWidget(this);
    //日历组件位置
    calendarWidget->setGeometry(25,98,450,280);
    //隐藏日历组件
    calendarWidget->setHidden(true);
    //时间控件点击事件
    connect(calendarWidget,SIGNAL(clicked(QDate)),this,SLOT(setDate()));
 
    //槽函数
    void Widget::showTime()
    {
         calendarWidget->setHidden(false);
    }
    
    void Widget::setDate()
    {
         //接收选择时间
         QDate date = calendarWidget->selectedDate();
         //时间格式化
         QString str = date.toString("yyyy-MM-dd");
         calendar_Edit->setText(str);
         //日历组件隐藏
         calendarWidget->setHidden(true);
    }


2.2日期、时间控件(QDateTime)

    //时间控件
    timeEdit = new QTimeEdit(this);
    //位置
    timeEdit->setGeometry(QRect(400,40,120,25));
    //获取系统时间
    QDateTime sysTime1 = QDateTime::currentDateTime();
    //获取时分秒以“:”号拆分赋予 list 数组
    QStringList list = sysTime1.toString("hh:mm:ss").split(':');
    //将时分秒绑定控件
    timeEdit->setTime(QTime(list[0].toInt(),list[1].toInt(),list[2].toInt()));
 
    //日期控件
    dateEdit = new QDateEdit(this);
    //位置
    dateEdit->setGeometry(QRect(400,70,120,25));
    //获取系统时间
    QDateTime sysTime2 = QDateTime::currentDateTime();
    //获取时分秒以“-”号拆分赋予 list 数组
    QStringList list2 = sysTime2.toString("yyyy-MM-dd").split('-');
    //将年月日绑定控件
    dateEdit->setDate(QDate(list2[0].toInt(),list2[1].toInt(),list2[2].toInt()));

 

你可能感兴趣的:(qt,开发语言)