qt mainwindow中如何刷新系统时间?
如题。以下是我用到的构造函数和时间显示函数:MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(n...
如题。以下是我用到的构造函数和时间显示函数:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
QWidget::setWindowIcon(QIcon("../pictures/icon/DB_User.png"));
ui->setupUi(this);
init_statusBar();
timerEvent(0);
startTimer(1000);
timeEvent();
showLogo();
//showTime(0);
}
void MainWindow::timeEvent()//QTimerEvent* event)
{
ui->timeLCD->setNumDigits(8);
ui->dateLCD->setNumDigits(10);
QDate dt = QDate::currentDate();
QString dateStr = dt.toString("yyyy-MM-dd");
QTime time = QTime::currentTime();
QString timeStr = time.toString("hh:mm:ss");
//QString dtstr = QString("%1-%2-%3 %4:%5:%6").arg(date.year()).arg(date.month()).arg(date.day()).arg(time.hour()).arg(time.minute()).arg(time.second());
ui->timeLCD->display(timeStr);
ui->dateLCD->display(dateStr);
connect(timer,SIGNAL(timeout()),this,SLOT(chTime()));
timer->start(1000);
}
为什么显示的时间都是静态的? 展开
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
QWidget::setWindowIcon(QIcon("../pictures/icon/DB_User.png"));
ui->setupUi(this);
init_statusBar();
timerEvent(0);
startTimer(1000);
timeEvent();
showLogo();
//showTime(0);
}
void MainWindow::timeEvent()//QTimerEvent* event)
{
ui->timeLCD->setNumDigits(8);
ui->dateLCD->setNumDigits(10);
QDate dt = QDate::currentDate();
QString dateStr = dt.toString("yyyy-MM-dd");
QTime time = QTime::currentTime();
QString timeStr = time.toString("hh:mm:ss");
//QString dtstr = QString("%1-%2-%3 %4:%5:%6").arg(date.year()).arg(date.month()).arg(date.day()).arg(time.hour()).arg(time.minute()).arg(time.second());
ui->timeLCD->display(timeStr);
ui->dateLCD->display(dateStr);
connect(timer,SIGNAL(timeout()),this,SLOT(chTime()));
timer->start(1000);
}
为什么显示的时间都是静态的? 展开
1个回答
展开全部
我看到你的问题,我做了一个只显示时间的,是在窗口标题里显示,我的秒钟会走动啊。
你把代码改一下。
我的代码是这样的
void mainWidget::timerEvent(QTimerEvent *event)
{
if(event->timerId()==myTimerID)
{
time=QTime::currentTime();
setWindowTitle(tr("%1:%2:%3").arg(time.hour()).arg(time.minute()).arg(time.second()));
}
}
myTimerID声明为int 类型,
在构造函数里加入myTimerID=startTimer(1000);
我想你是没有加入if(event->timerId()==myTimerID)
进行判断。
你把代码改一下。
我的代码是这样的
void mainWidget::timerEvent(QTimerEvent *event)
{
if(event->timerId()==myTimerID)
{
time=QTime::currentTime();
setWindowTitle(tr("%1:%2:%3").arg(time.hour()).arg(time.minute()).arg(time.second()));
}
}
myTimerID声明为int 类型,
在构造函数里加入myTimerID=startTimer(1000);
我想你是没有加入if(event->timerId()==myTimerID)
进行判断。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询