QT学习(三)
首先整理一下编码的方法。对于一个待解决的问题,首先应该将大问题分解成小问题,将小问题划分为小小问题。。。
然后再进行类的抽象,将划分成的问题和类进行对应。然后再对划分的小。。问题进行具体的处理分析,划分出步骤进行接口的处理。最后进行编码。
编码是首先在.h文件中进行类的定义,类中函数的定义,该类中用到的变量的定义;然后再在.c的文件中进行类的具体实现。注意还要将一些宏的定义单独定义在一个头文件中。在构造函数中进行变量的初始化操作,界面初始化函数的调用和信号槽的连接(这里指的是QT这样用)。在析构函数中将系统不会自动释放的对象和资源进行释放。最后进行具体函数的实现。
QT学习(三)
上一章学习了信号槽机制,这一章来进行具体的应用。
创建一个简单的窗口。
test.h文件:
- #ifndef TEST_H
- #define TEST_H
- #include <QtGui/QMainWindow>
- #include "ui_test.h"
- #include <QLabel>
- #include <QPushButton>
- #include <QHBoxLayout>
- class test : public QMainWindow
- {
- Q_OBJECT
- public:
- test(QWidget *parent = 0, Qt::WFlags flags = 0);
- ~test();
- private:
- void initWidget();
- void show();
- QLabel *label;
- QPushButton *pushBtn;
- QWidget *window;
- QHBoxLayout *layout;
- };
- #endif // TEST_H
test.cpp文件:
- #include "test.h"
- test::test(QWidget *parent, Qt::WFlags flags)
- : QMainWindow(parent, flags)
- {
- label=new QLabel("nihao");
- pushBtn=new QPushButton("ok");
- window=new QWidget();
- layout=new QHBoxLayout();
- connect(pushBtn,SIGNAL(click()),this,SLOT(close()));
- initWidget();
- }
- test::~test()
- {
- }
- void test::initWidget()
- {
- window->setWindowTitle("aaaaaaaa");
- layout->addWidget(label);
- layout->addWidget(pushBtn);
- window->setLayout(layout);
- }
- void test::show()
- {
- window->show();
- }
main.cpp中:
- #include "test.h"
- #include <QtGui/QApplication>
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- test w;
- return a.exec();
- }
以上的代码实现类一个简单的窗口。
其实所有的窗口都是基于这样一个简单的窗口的拓展,可能会因为功能的需要去继承原有的控件类进行新的开发,进行不一样的布局管理,单不管怎样的去改变,都是基于这样一个消息槽机制和布局方法来实现的,只要勤加练习,敢想敢做就一定会在QT的领域中有一番作为的。
以后全都是一些例子和实现。