• 6232阅读
  • 8回复

[原创]请问 如何实现qt 的实时显示啊? [复制链接]

上一主题 下一主题
离线qq526665621
 

只看楼主 倒序阅读 楼主  发表于: 2011-05-17
这是我编的一段程序,请问如何能实现实时显示
class MyMainWindow : public QWidget
{
        public:
                MyMainWindow();
        private:
                QLabel *c_label;
                QLabel *d_label;
                QLabel *t_label;
                QLabel *n_label;
                QLabel *c_line;
                QLabel *d_line;
                QLabel *t_line;
                QLabel *n_line;
};
MyMainWindow::MyMainWindow()
{
        setMinimumSize(320,240);
        setMaximumSize(320,240);
        QDate date=QDate::currentDate();
        QTime time=QTime::currentTime();
//      QTimer *timer = new QTime(t_line);
//      QTimer *timec = new QTime(t_line);

        c_label=new QLabel(this);
        d_label=new QLabel(this);
        t_label=new QLabel(this);
        n_label=new QLabel(this);
        c_label->setGeometry(40,20,60,40);
        c_label->setText("class:");
        c_label->setAlignment(Qt::AlignCenter);
        c_label->setFont(QFont("Time",16));
        d_label->setGeometry(40,70,60,40);
        d_label->setText("data:");
        d_label->setAlignment(Qt::AlignCenter);
        d_label->setFont(QFont("Time",16));
        t_label->setGeometry(40,120,60,40);
        t_label->setText("time:");
        t_label->setAlignment(Qt::AlignCenter);
        t_label->setFont(QFont("Time",16));
        n_label->setGeometry(40,170,60,40);
        n_label->setText("num:");
        n_label->setAlignment(Qt::AlignCenter);
        n_label->setFont(QFont("Time",16));
        c_line=new QLabel("4301",this);
        d_line=new QLabel(date.toString(),this);
        t_line=new QLabel(time.toString(),this);
        n_line=new QLabel(this);
        c_line->setGeometry(110,20,170,40);
        c_line->setFont(QFont("Time",16));
        d_line->setGeometry(110,70,170,40);
        d_line->setFont(QFont("Time",16));
       t_line->setGeometry(110,120,170,40);
        t_line->setFont(QFont("Time",16));
//      connect(timer,SIGNAL(timeout()),t_line,SLOT(show()));
//      connect(timec,SIGNAL(timeout()),t_line,SLOT(clear()));
//      timer->start(1000);
//      timec->start(2000);
        n_line->setGeometry(110,170,170,40);
        n_line->setFont(QFont("Time",16));
};
int main(int argc, char **argv)
{
        QApplication app(argc, argv);
        MyMainWindow mymainwindow;
        mymainwindow.show();
        return app.exec();
};

离线zzh

只看该作者 1楼 发表于: 2011-05-17
你忘记加入布局了。
离线fljxray
只看该作者 2楼 发表于: 2011-05-17
是的,貌似要加入布局中才能显示,你可以加个QHBoxLayout or QVBoxLayout or QGridLayout,把widget加进去。QHBoxLayout *hlayout=new QHBoxLayout();  hlayout->addWidget(c_label);不要忘记最后加上setLayout(hlayout);
离线qq526665621

只看该作者 3楼 发表于: 2011-05-18
您好,我的意思是,让时间改变,可以显示,但不是动态改变的,不知道怎么才能动态改变,我加入了函数
connect(timer,SIGNAL(timeout()),t_line,SLOT(update()));
timer->start(100);
但并没有放生时间的改变
求高手帮忙啊
离线qq526665621

只看该作者 4楼 发表于: 2011-05-18
就是让他进行动态显示时间,现在能够显示时间,但时间不改变,当再次运行时时间才会改变 ,麻烦大家帮帮忙啊,着急!!!1
离线cookinful
只看该作者 5楼 发表于: 2011-05-18
引用第3楼qq526665621于2011-05-18 09:19发表的  :
您好,我的意思是,让时间改变,可以显示,但不是动态改变的,不知道怎么才能动态改变,我加入了函数
connect(timer,SIGNAL(timeout()),t_line,SLOT(update()));
timer->start(100);
但并没有放生时间的改变
求高手帮忙啊  




你update()写了么?
给你一个time小程序。
[ 此帖被cookinful在2011-05-18 14:21重新编辑 ]
附件: time.rar (344 K) 下载次数:199
离线qq526665621

只看该作者 6楼 发表于: 2011-05-18
回 5楼(cookinful) 的帖子
谢谢了
离线qq526665621

只看该作者 7楼 发表于: 2011-05-18
回 2楼(fljxray) 的帖子
XIEXIE
离线qq526665621

只看该作者 8楼 发表于: 2011-05-18
回 1楼(zzh) 的帖子
谢谢
快速回复
限100 字节
 
上一个 下一个