首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

qt初学者求教时间显示有关问题

2012-04-27 
qt菜鸟求教时间显示问题我用Qt Creator的,添加了Time Edit和Date Edit这两个控件,实现了将设置的时间分别

qt菜鸟求教时间显示问题
我用Qt Creator的,添加了Time Edit和Date Edit这两个控件,实现了将设置的时间分别显示到两个label上,但是仅仅实现了显示,都不变化呀!不知道是应该用定时器来实现还是Qt中另外有实现方法?

[code=C/C++][/code]
#include "dialog.h"
#include "ui_dialog.h"

Dialog::Dialog(QWidget *parent) :
? QDialog(parent),
? ui(new Ui::Dialog)
{
? ui->setupUi(this);
? ui->menuWidget->hide();
? connect(ui->dateEdit,SIGNAL(dateChanged(QDate)),this,SLOT(datedisplay()));
? connect(ui->timeEdit,SIGNAL(timeChanged(QTime)),this,SLOT(timedisplay()));
}

Dialog::~Dialog()
{
? delete ui;
}

void Dialog::datedisplay()
{
? ui->dateLabel->setText(ui->dateEdit->date().toString(" yyyy-MM-dd"));
}

void Dialog::timedisplay()
{
? ui->timeLabel->setText(ui->timeEdit->time().toString(" HH:mm"));
}


[解决办法]
这个要用个定时器隔一段时间去刷新显示的内容 显示部分是对的 ;定时器是QTimer类?
QTimer* pTimer = new QTimer;
pTimer->start(1000);
connect( pTimer, SIGNAL( timeout()), this, SLOT( 获取TimeEdit值显示在label上的槽函数) );
[Quote=引用:]
我用Qt Creator的,添加了Time Edit和Date Edit这两个控件,实现了将设置的时间分别显示到两个label上,但是仅仅实现了显示,都不变化呀!不知道是应该用定时器来实现还是Qt中另外有实现方法?

[code=C/C++][/code]
#include "dialog.h"
#include "ui_dialog.h"

Dialog::Dialog(QWidge……
[/Quote]
[解决办法]
2楼正解, 楼主好好理解理解。?

connect(ui->timeEdit,SIGNAL(timeChanged(QTime)),this,SLOT(timedisplay()));
中ui->timeEdit 这个对象有timeChange(QTime)信号吗?
------------------------------------
QTimer* pTimer = new QTimer;
pTimer->start(1000);
connect( pTimer, SIGNAL( timeout()), this, SLOT( 获取TimeEdit值显示在label上的槽函数) );
void Dialog::timedisplay()
{
? ui->timeLabel->setText(ui->timeEdit->time().toString(" HH:mm"));
? pTimer->start(1000);

}
--------------------------------

[解决办法]
QTimer* pTimer = new QTimer; // 声明个定时器对象
pTimer->start(1000);// 启动定时器,定时时间是1秒。
connect( pTimer, SIGNAL( timeout()), this, SLOT( 获取TimeEdit值显示在label上的槽函数) );//检测你的定时器对象,是否到定时时间,到时间就激活槽函数。
void Dialog::timedisplay()//这是曹函数
{
? ui->timeLabel->setText(ui->timeEdit->time().toString(" HH:mm"));
//这是通过ui指向上面的timeLabel标签,并设置标签上的内容。
? pTimer->start(1000);//再次启动定时器,因为第一次启动的已经到时间了。所以的再次启动一次。

}

[解决办法]
QTime time;

ui->timeEdit->setTime(time.currentTime());
获得系统的时间,然后再用个定时器每秒刷新一下
[解决办法]
我资源里有一个以前写的例子。

热点排行