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

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

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

QT学习(三)

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

创建一个简单的窗口。

test.h文件:

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

test.cpp文件:

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

main.cpp中:

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

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

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

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

QT学习(三)的更多相关文章

  1. qt学习(三) qt布局

    使用横向与竖向.网格三种布局嵌套使用后可以组合出很复杂的界面. 这里向大家推荐这篇博客 http://www.cnblogs.com/Bonker/p/3454956.html 我这里使用布局做了一个 ...

  2. qt学习(三):鼠标图标改变

    qt学习 (三):鼠标图标改变 当你进入一个美好的qt软件场景,比如游戏,电脑的黑白图标会让程序逊色不少, 1改图标要加光标的头文件, 2 载入光标图, 3 再设置改光标就可以了 1在头文件中加 #i ...

  3. Qt学习 之 多线程程序设计(QT通过三种形式提供了对线程的支持)

    QT通过三种形式提供了对线程的支持.它们分别是, 一.平台无关的线程类 二.线程安全的事件投递 三.跨线程的信号-槽连接. 这使得开发轻巧的多线程Qt程序更为容易,并能充分利用多处理器机器的优势.多线 ...

  4. QT学习第1天

    QT学习第一天  坚持住!! 一 Qt概述 1.Qt发展历史 (1)1991年诞生(Haavard Nord/Eirik Chambe-Eng), (2)1994年创立Troll Tech(奇趣科技) ...

  5. QT的三种协议说明

    关于Qt的三种协议以及是否收费,有以下引文: 引文一: 最近一直在学习 Qt.Qt 有两个许可证:LGPL 和商业协议.这两个协议在现在的 Qt 版本中的代码是完全一致的(潜在含义是,Qt 的早期版本 ...

  6. QT学习之菜单栏与工具栏

    QT学习之菜单栏与工具栏 目录 简单菜单栏 多级菜单栏 上下菜单栏 工具栏 简单菜单栏 程序示例 from PyQt5.QtWidgets import QApplication, QMainWind ...

  7. QT学习之第一个程序

    QT学习之第一个程序 目录 手动创建主窗口 居中显示 添加窗口图标 显示提示文本 Message Box的应用 手动连接信号与槽 手动创建主窗口 窗口类型 QMainWindow: 可以包含菜单栏.工 ...

  8. Qt学习之信号与槽(一)

    Qt学习之信号与槽(一) 目录 QT的信号与槽机制 在窗口的UI设计中操作添加信号和槽     QT的信号与槽机制   QT的两种机制 在Qt和PyQt中有两种通信机制: 低级事件处理机制(low-l ...

  9. Qt 学习之路 2(73):Qt 线程相关类

    Home / Qt 学习之路 2 / Qt 学习之路 2(73):Qt 线程相关类 Qt 学习之路 2(73):Qt 线程相关类  豆子  2013年11月26日  Qt 学习之路 2  7条评论 希 ...

随机推荐

  1. Python自动化办公:将文本文档内容批量分类导入Excel表格

    序言 (https://jq.qq.com/?_wv=1027&k=GmeRhIX0) 它来了,它又来了. 本文实现用Python将文本文件自动保存到Excel表格里面去. 需求 将锦江区.t ...

  2. svn :不能打开文件“/data/svn/repo/format”: 权限不够

    解决方法:关闭selinux vi /etc/sysconfig/selinux 将其中的SELINUX=enforcing 改为SELINUX=disabled  即可.

  3. 在项目中导入lombok依赖自动生成有参,无参 空参 方法的注解

    导入依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok< ...

  4. SVM简要介绍

    SVM 支持向量机(SVM),是一个用于解决二分类问题的有监督机器学习模型. 1.SVM的两个优点 更高的速度 在有一定的样本数量支持下(成千上万张),具有比其他模型有更好的效果 2.SVM的工作过程 ...

  5. Hadoop-HA 搭建高可用集群Hadoop Zookeeper

    Hadoop Zookeeper 搭建(一) 一.准备工作 VMWARE虚拟机 CentOS 7 系统 虚拟机1:master 虚拟机2:node1 虚拟机3:node2 时间同步 ntpdate n ...

  6. Linux一些错误总结

    1.cannot verify <mydomainname> certificate, issued by '/C=US/O=Let's Encrypt/CN=R3': 解决1:wget ...

  7. CF665B Shopping

    CF665B Shopping 题目描述 Ayush is a cashier at the shopping center. Recently his department has started ...

  8. C++ 实现可变参数的三个方法

    有时我们无法提前预知应该向函数传递几个实参.例如,我们想要编写代码输出程序产生的错误信息,此时最好用同一个函数实现该项功能,以便对所有错误的处理能够整齐划一.然而,错误信息的种类不同,所以调用错误输出 ...

  9. python 进程理解

    简介 线程理解中介绍过,再回顾一遍,一个应用程序由多个进程组成,一个进程由多个线程组成,由操作系统根据优先级.时间片来绝对线程的运行 进程 python的进程不同于线程,在主流的cpython解释器下 ...

  10. placeholder 设置字体颜色

    input::-webkit-input-placeholder { /* WebKit browsers */ color: #999; } input:-moz-placeholder { col ...