新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Qt图形编程基础之:Qt/Embedded开发入门

Qt图形编程基础之:Qt/Embedded开发入门

作者:时间:2013-09-13来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/257103.htm

图12.8使用了QGroupBox进行排列的日期类QDateTimeEdit、一个行编辑框类QLine-
Edit、一个文本编辑类QTextEdit和一个组合框类QComboBox。

图12.9是以QGrid排列的一个QDial、一个QProgressBar、一个QSpinBox、一个QScrollBar、一个QLCDNumber和一个QSlider。

图12.10是以QGrid排列的一个QIconView、一个QListView、一个QListBox和一个QTable。

     

图12.8 QGrid组合图示1    图12.9 QGrid组合图示2 图12.10钟表部件图示

3.自定义窗口

开发者可以通过子类化QWidget或它的一个子类创建他们自己的部件或对话框。为了举例说明子类化,下面提供了数字钟部件的完整代码。

钟表部件是一个能显示当前时间并自动更新的LCD。一个冒号分隔符随秒数的流逝而闪烁,如图12.10所示。

Clock从QLCDNumber部件继承了LCD功能。它有一个典型部件类所拥有的典型构造函数,带有可选的parent和name参数(如果设置了name参数,测试和调试会更容易)。系统有规律地调用从QObject继承的timerEvent()函数。

它在clock.h中定义如下所示:

#includeqlcdnumber.h>

classClock:publicQLCDNumber

{

public:

Clock(QWidget*parent=0,constchar*name=0);

protected:

voidtimerEvent(QTimerEvent*event);

private:

voidshowTime();

boolshowingColon;

};

构造函数showTime()是用当前时间初始化钟表,并且告诉系统每1000ms调用一次timerEvent()来刷新LCD的显示。在showTime()中,通过调用QLCDNumber::display()来显示当前时间。每次调用showTime()来让冒号闪烁时,冒号就被空白代替。

clock.cpp的源码如下所示:

#includeqdatetime.h>

#includeclock.h

Clock::Clock(QWidget*parent,constchar*name)

:QLCDNumber(parent,name),showingColon(true)

{

showTime();

startTimer(1000);

}

voidClock::timerEvent(QTimerEvent*)

{

showTime();

}

voidClock::showTime()

{

QStringtimer=QTime::currentTime().toString().left(5);

if(!showingColon)

{

time[2]='';

}

display(time);

showingColon=!showingColon;

}

文件clock.h和clock.cpp完整地声明并实现了Clock部件。

#includeqapplication.h>

#includeclock.h

intmain(intargc,char**argv)

{

QApplicationapp(argc,argv);

Clock*clock=newClock;

app.setMainWidget(clock);

clock->show();

returnapp.exec();

}

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

linux相关文章:linux教程




评论


相关推荐

技术专区

关闭