QT学习(三)

首先整理一下编码的方法。对于一个待解决的问题,首先应该将大问题分解成小问题,将小问题划分为小小问题。。。

然后再进行类的抽象,将划分成的问题和类进行对应。然后再对划分的小。。问题进行具体的处理分析,划分出步骤进行接口的处理。最后进行编码。

编码是首先在.h文件中进行类的定义,类中函数的定义,该类中用到的变量的定义;然后再在.c的文件中进行类的具体实现。注意还要将一些宏的定义单独定义在一个头文件中。在构造函数中进行变量的初始化操作,界面初始化函数的调用和信号槽的连接(这里指的是QT这样用)。在析构函数中将系统不会自动释放的对象和资源进行释放。最后进行具体函数的实现。

QT学习(三)

上一章学习了信号槽机制,这一章来进行具体的应用。

创建一个简单的窗口。

test.h文件:

 

[cpp] view plaincopy
 
  1. #ifndef TEST_H  
  2. #define TEST_H  
  3.   
  4. #include <QtGui/QMainWindow>  
  5. #include "ui_test.h"  
  6. #include <QLabel>  
  7. #include <QPushButton>  
  8. #include <QHBoxLayout>  
  9.   
  10. class test : public QMainWindow  
  11. {  
  12.     Q_OBJECT  
  13.   
  14. public:  
  15.     test(QWidget *parent = 0, Qt::WFlags flags = 0);  
  16.     ~test();  
  17. private:  
  18.     void initWidget();  
  19.     void show();  
  20.     QLabel *label;  
  21.     QPushButton *pushBtn;  
  22.     QWidget *window;  
  23.     QHBoxLayout *layout;  
  24. };  
  25.   
  26. #endif // TEST_H  


test.cpp文件:

 

 

[cpp] view plaincopy
 
  1. #include "test.h"  
  2.   
  3. test::test(QWidget *parent, Qt::WFlags flags)  
  4.     : QMainWindow(parent, flags)  
  5. {  
  6.     label=new QLabel("nihao");  
  7.     pushBtn=new QPushButton("ok");  
  8.     window=new QWidget();  
  9.     layout=new QHBoxLayout();  
  10.     connect(pushBtn,SIGNAL(click()),this,SLOT(close()));  
  11.     initWidget();  
  12. }  
  13.   
  14. test::~test()  
  15. {  
  16.       
  17. }  
  18. void test::initWidget()  
  19. {  
  20.     window->setWindowTitle("aaaaaaaa");  
  21.     layout->addWidget(label);  
  22.     layout->addWidget(pushBtn);  
  23.     window->setLayout(layout);  
  24. }  
  25. void test::show()  
  26. {  
  27.     window->show();  
  28. }  

main.cpp中:

 

 

[cpp] view plaincopy
 
  1. #include "test.h"  
  2. #include <QtGui/QApplication>  
  3.   
  4. int main(int argc, char *argv[])  
  5. {  
  6.     QApplication a(argc, argv);  
  7.     test w;  
  8.     return a.exec();  
  9. }  

以上的代码实现类一个简单的窗口。

 

其实所有的窗口都是基于这样一个简单的窗口的拓展,可能会因为功能的需要去继承原有的控件类进行新的开发,进行不一样的布局管理,单不管怎样的去改变,都是基于这样一个消息槽机制和布局方法来实现的,只要勤加练习,敢想敢做就一定会在QT的领域中有一番作为的。

以后全都是一些例子和实现。

posted on 2014-02-20 22:12  春阳CYang  阅读(349)  评论(0编辑  收藏  举报

导航