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的领域中有一番作为的。
以后全都是一些例子和实现。
QT学习(三)的更多相关文章
- qt学习(三) qt布局
使用横向与竖向.网格三种布局嵌套使用后可以组合出很复杂的界面. 这里向大家推荐这篇博客 http://www.cnblogs.com/Bonker/p/3454956.html 我这里使用布局做了一个 ...
- qt学习(三):鼠标图标改变
qt学习 (三):鼠标图标改变 当你进入一个美好的qt软件场景,比如游戏,电脑的黑白图标会让程序逊色不少, 1改图标要加光标的头文件, 2 载入光标图, 3 再设置改光标就可以了 1在头文件中加 #i ...
- Qt学习 之 多线程程序设计(QT通过三种形式提供了对线程的支持)
QT通过三种形式提供了对线程的支持.它们分别是, 一.平台无关的线程类 二.线程安全的事件投递 三.跨线程的信号-槽连接. 这使得开发轻巧的多线程Qt程序更为容易,并能充分利用多处理器机器的优势.多线 ...
- QT学习第1天
QT学习第一天 坚持住!! 一 Qt概述 1.Qt发展历史 (1)1991年诞生(Haavard Nord/Eirik Chambe-Eng), (2)1994年创立Troll Tech(奇趣科技) ...
- QT的三种协议说明
关于Qt的三种协议以及是否收费,有以下引文: 引文一: 最近一直在学习 Qt.Qt 有两个许可证:LGPL 和商业协议.这两个协议在现在的 Qt 版本中的代码是完全一致的(潜在含义是,Qt 的早期版本 ...
- QT学习之菜单栏与工具栏
QT学习之菜单栏与工具栏 目录 简单菜单栏 多级菜单栏 上下菜单栏 工具栏 简单菜单栏 程序示例 from PyQt5.QtWidgets import QApplication, QMainWind ...
- QT学习之第一个程序
QT学习之第一个程序 目录 手动创建主窗口 居中显示 添加窗口图标 显示提示文本 Message Box的应用 手动连接信号与槽 手动创建主窗口 窗口类型 QMainWindow: 可以包含菜单栏.工 ...
- Qt学习之信号与槽(一)
Qt学习之信号与槽(一) 目录 QT的信号与槽机制 在窗口的UI设计中操作添加信号和槽 QT的信号与槽机制 QT的两种机制 在Qt和PyQt中有两种通信机制: 低级事件处理机制(low-l ...
- Qt 学习之路 2(73):Qt 线程相关类
Home / Qt 学习之路 2 / Qt 学习之路 2(73):Qt 线程相关类 Qt 学习之路 2(73):Qt 线程相关类 豆子 2013年11月26日 Qt 学习之路 2 7条评论 希 ...
随机推荐
- 查看mysql安装目录、安装路径
show variables like "%CHAR%" 我是在Navicat中输入这个命令后查的.
- W10修改被改的默认打开文本方式
今天不小心给默认方式打开点错了,身为处女座的我有洁癖非要非恢复过来,这是找到的 原文操作出处:win10系统如何还原文件默认打开方式?win10设置文件默认打开方式的方法 -Win7系统之家 (win ...
- 基于.NetCore开发博客项目 StarBlog - (15) 生成随机尺寸图片
系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...
- HashSet集合存储数据的结构和HashSet集合存储元素不重复的原理
HashSet集合存储数据的结构 HashSet集合存储元素不重复的原理 //创建HashSet集合对象 Hashset<String> set = new HashSet<> ...
- supervisor 按天备份日志
参考使用 logrotate 配置 supervisor 进行日志管理按天备份 supervisor默认的日志备份策略是按大小备份,经常不知道去哪个文件查日志的烦恼.本文通过设置 logrotate ...
- 在 SQL Server 中使用 Try Catch 处理异常
如何在 SQL Server 中使用 Try Catch 处理错误? 从 SQL Server 2005 开始,我们在TRY 和 CATCH块的帮助下提供了结构错误处理机制.使用TRY-CATCH的语 ...
- 从工程师到技术leader思维升级
身处职场之中,太多话题相围绕,"个人成长"."管理"或许是讨论的最多的了. 但"个人成长"和"管理"却是大不相同的两件事 ...
- YII类的映射表机制
<?php /** * Created by PhpStorm. * Date: 2016/5/25 * Time: 19:09 * * YII的类的映射表 */ namespace front ...
- centos安装torch==1.4.0与相关细节
对于某些直接安装torch==1.4.0报错的情况(没错,就是我遇到了) 在网上查找了,大概的解决方法是先安装一个低版本的torch和torchvision, torchvision是pytorch中 ...
- Win10系统下搭建Go lang开发环境更换国内源并且体验宇宙最快框架Iris
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_156 最近有同学开始尝试接触Go lang,拥抱新技术永远都会是一个好习惯,之前的一篇文章介绍了如何在Mac os系统下配置Go ...