因为工作琐事,进度好慢。。。

来看看书中的例子吧

代码如下:

#include <QApplication>
#include <QHBoxLayout>
#include <QSlider>
#include <QSpinBox>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);                          //创建QApplication对象app管理应用程序          

    QWidget *window = new QWidget;                         //创建一个部件 
    window->setWindowTitle("Enter Your Age");              //设置部件标题    

    QSpinBox *spinBox = new QSpinBox;                       //创建SpinBox
    QSlider *slider = new QSlider(Qt::Horizontal);          //创建一个水平方向的 QSlider  
    spinBox->setRange(0, 130);                              //设置spinBox的值范围   
    slider->setRange(0, 130);                               //设置slider的值范围
    QObject::connect(spinBox, SIGNAL(valueChanged(int)),
                    slider, SLOT(setValue(int)));           //spinBox的值发生变化时,slider值也跟着变化
    QObject::connect(slider, SIGNAL(valueChanged(int)),
                    spinBox, SLOT(setValue(int)));          //slider的值发生变化时,spinBox值也跟着变化   
    spinBox->setValue(35);                                  //设定spinBox的初始值 

    QHBoxLayout *layout = new QHBoxLayout;                   //创建一个水平布局
    layout->addWidget(spinBox);                              //
    layout->addWidget(slider);                               //在布局中添加各个部件  
    window->setLayout(layout);                               //设定部件window的布局管理为layout

    window->show();                                          //显示窗体 

    return app.exec();                                       //进入程序主循环。。
}

运行如图:

exmp1 

 

 

从上面例子中可以看书QT程序中界面上的任何一个组件,如窗体,SpinBox,Slider等等都是一个部件(widget)。

各个部件间可以用消息和槽联系到一起。

 

QT中的界面的布局管理是通过布局类来进行管理的。主要有3个重要的布局管理类:

  1. QHBoxLayout  水平方向排列部件,从左到有。
  2. QVBoxLayout  垂直方向排列部件,从上到下。
  3. QGridLayout    把各个部件排列在一个网格中。

 

额。。。貌似这才完成了第一章的学习。

总结一下。。 目前用到的所有类间的关系,如图:

inherit

 

QT的基础建立在信号与槽的机制上,为了实现信号与槽的机制,QT对C++通过宏的方式进行了扩展,如Q_OBJECT等等,这些宏在编译的时候通过qmake,moc等工具自动的进行解析为C++代码。

posted on 2009-12-10 21:27  icove  阅读(431)  评论(0编辑  收藏  举报