2 qq 22840743 qq_22840743 于 2016.03.22 14:56 提问

QT creator Label控件时间问题

在label中获取到当前系统的时间之后,checkbox有两个选项 一个是小时,一个是分钟
判断
if(ui->checkbox_xs->ischecked())
{
如果小时被勾选之后,button按钮是怎样去 在这里实现对label时间中的小时进行时间更改。
时间格式yyyy-MM-dd hh:mm:ss dddd 就只要对hh进行更改

求详细的思路,以及所需的代码

3个回答

qq423399099
qq423399099   Ds   Rxr 2016.03.22 16:51
已采纳

两个button分别叫pushButton_2和pushButton_3
头文件:

 #ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

public slots:
    void SlotAdd();
    void SlotSub();
};

#endif // MAINWINDOW_H

CPP文件:

 #include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDateTime>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(SlotAdd()));
    connect(ui->pushButton_3, SIGNAL(clicked()), this, SLOT(SlotSub()));
}

void MainWindow::SlotAdd()
{
    QString label_string = ui->label->text();
    QDateTime label_time = QDateTime::fromString(label_string, "yyyy-MM-dd hh:mm:ss zzz");
    if(ui->checkBox->isChecked())
        label_time = label_time.addSecs(60 * 60);
    else
        label_time = label_time.addSecs(60);
    ui->label->setText(label_time.toString("yyyy-MM-dd hh:mm:ss zzz"));
}

void MainWindow::SlotSub()
{
    QString label_string = ui->label->text();
    QDateTime label_time = QDateTime::fromString(label_string, "yyyy-MM-dd hh:mm:ss zzz");
    if(ui->checkBox->isChecked())
        label_time = label_time.addSecs(-60 * 60);
    else
        label_time = label_time.addSecs(-60);
    ui->label->setText(label_time.toString("yyyy-MM-dd hh:mm:ss zzz"));
}

图片说明

qq_22840743
qq_22840743 非常感谢!
一年多之前 回复
qq423399099
qq423399099   Ds   Rxr 2016.03.22 15:39

LZ指的button按钮时类似上下键那种吗,如果小时被勾选后,按一下上button就加一个小时,使得label显示的时间在原来的基础上加一小时?

qq423399099
qq423399099 回复qq_22840743: OK,稍等,我等会重新开个回复框
一年多之前 回复
qq_22840743
qq_22840743 回复小灸舞:非常感谢,但是新手。对代码也还是不太熟悉 能对第二种方法 写一下代码么
一年多之前 回复
qq423399099
qq423399099 回复qq_22840743: 一种可以用字符串截取的方法,对应位置加1减1以后(注意进位借位),然后将新的字符串拼接好,然后显示在label上。或者将label的显示的时间转换为时间类,然后操作,操作完再更新label
一年多之前 回复
qq_22840743
qq_22840743 回复小灸舞:一共有两个按钮,一个是增加按钮,一个是减少按钮。在增加按钮和减少按钮上面还有两个checkbox,一个是是小时,一个是分钟,只有勾选了上面两个按钮其中的一个,在点击下面的pushbutton按钮才能对label里面的时间进行更改
一年多之前 回复
qq423399099
qq423399099 回复qq_22840743: 点一下按钮就让label显示的时间加一小时或者加一分钟?
一年多之前 回复
qq_22840743
qq_22840743 谢谢你的回答,但是我的button按钮就是一般的那种button按钮,qpushbutton
一年多之前 回复
qq_22840743
qq_22840743   2016.03.22 17:19

真的是非常感谢!!!!!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!