C++学习笔记(四)QT的简单使用 —参考阿发你好
这里是一些QT的资料
目前需要做一个界面,想想也是迟早的事情。
我自己是跟着这个人的CSDN上做的。
http://blog.csdn.net/liang19890820/article/details/51752029
安装问题上,觉得这个写的太不详细了,然后是度娘走的
http://jingyan.baidu.com/article/17bd8e5234b79a85ab2bb8be.html
我在这里选择的是默认安装了
然后里面直接有QTcreator
这个人的博客不错:
http://www.cnblogs.com/jingliming/p/4947534.html
QTcreator 平台的搭建
This is my first qt program
方案1
#include "mainwindow.h"//用“”来表示自定义头文件或者本地地头文件
#include <QApplication>//用<>来表示系统自带到额头文件
#include< QLabel>int main(int argc, char *argv[])
{QApplication a(argc, argv);// MainWindow w;// w.show();QLabel label("Helloworld!!!");label.show();return a.exec();
}
方案2:
#include <QApplication>
#include <QLabel>int main(int argc, char *argv[])
{QApplication app(argc, argv);QLabel *label = new QLabel("Hello, world!");label->show();return app.exec();
}
和方案一的运行结果一样。
如果这么改一下:
QLabel *label = new QLabel("<h2><font color='red'>Hello</font>, world!<h2>");
那么运行结果是:
QT visual studio 平台的搭建
这个地方有的最下面有otherdownload,下载visual studio add-in
https://www.qt.io/download-open-source/#section-2
现在配齐了这两个安装包
qt creator
补丁下载地址:
https://developer.microsoft.com/zh-cn/windows/hardware/windows-driver-kit
正确的安装步骤,查看这个人的博客
解决方案:
http://blog.csdn.net/suima0v0/article/details/50973861
GUI
Graphic User Interface 图形化用户界面
QT中把窗体定义成:Widget,他们都共同继承一个父类:Qwidget
初探信号槽
#include <QApplication>
#include <QPushButton>int main(int argc, char *argv[])
{QApplication a(argc, argv);QPushButton *button = new QPushButton("Quit");QObject::connect(button, SIGNAL(clicked()), &a, SLOT(quit()));button->show();return a.exec();
}
运行截图:
代码解释:QObject是所有类的根。Qt使用这个QObject实现了一个单根继承的C++。它里面有一个connect静态函数,用于连接信号槽。
组件布局
组件定位:包括绝对定位和布局定位
绝对定位就是使用最原始的定位方法,给出这个组件的坐标和长宽值。这样,Qt就知道该把组件放在哪里,以及怎么设置组件的大小了。
#include <QApplication>
#include <QWidget>
#include <QSpinBox>//引用控件spinbox
#include <QSlider>//引用控件slider
#include <QHBoxLayout>int main(int argc, char *argv[])
{QApplication app(argc, argv);//实例化了一个叫app的对象QWidget *window = new QWidget;//实例化了一个QWidget窗口window->setWindowTitle("enter your age");//将这个窗口的名字叫做enter you ageQSpinBox *spinBox = new QSpinBox;//实例化一个spinBox的对象QSlider *slider = new QSlider(Qt::Horizontal);//实例化一个滑条的对象spinBox->setRange(0, 130);//spinBox的范围是0-130slider->setRange(0, 130);//slider的范围是0-130QObject::connect(slider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));//让slider和spinBox的值联系在一起,具体来说是slider控制spinbox,也即是前面的参数控制后面的的参数QObject::connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)));spinBox->setValue(66);//设置他的初始值QVBoxLayout *layout = new QVBoxLayout;//实例化了VBoxlayout布局的对象,数值方向进行排列layout->addWidget(spinBox);//在这个布局中添加spinbox对象layout->addWidget(slider);//在这个布局中添加slider对象window->setLayout(layout);//设立对象吧window->show();//显示窗口return app.exec();
}
Qt一共有三种主要的layout,分别是:
1、QHBoxLayout- 按照水平方向从左到右布局;
2、QVBoxLayout- 按照竖直方向从上到下布局;
3、QGridLayout- 在一个网格中进行布局,类似于HTML的table。
layout使用addWidget添加组件,使用addLayout可以添加子布局,因此,这就有了无穷无尽的组合方式。
信号和槽
Qt中的事件处理机制叫“信号和槽”signal&slot
其理论模型:
对象a中有一个信号:signal:XXX(代表一个事件)
对象b中有一个槽;slot: YYY(事件处理函数)
我们把信号和槽连接起来
connect(a,XXX,b,YYY);
然后当a中事件发生时,b中的处理函数就会被调用
进程和多线程
进程(process)和线程(thread)
线程是进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的能够独立运行的基本单位
一个程序至少一个进程,一个进程至少一个线程
一个进程里面多个线程之间的内存空间是共享的
但是当一个线程共享内存的时候,其他线程必须等他结束之后才能使用这一内存
防止多个线程共同读写某一块内存区域的方法叫做互斥锁:Mutex
还有一些内存区域,只能提供给固定数目的线程使用
信号量(semaphore)用来保证多个线程不会相互冲突
问题:
1、一个cpu可以有多少个进程,(也就是有有多少个工厂能够正常工作)
2、在一个进程当中,同一个任务,也就是在买菜,在买菜的内存空间,炒菜在炒菜的内存空间进行
单个任务在不同的部分运行
因为很多事情要在linux的环境中进行操作
然后这个下面的链接的在Ubuntu14.04中安装QT
http://jingyan.baidu.com/article/c85b7a640812ca003bac95b5.html
开头结尾的宏是用了避免重复编译,中间的宏是Qt用的,只有指定了才能使用信号槽
先跟着视频走,在visual stdio中创建出QT
可以按F5直接运行
然后就可以搞定QTdesigner了
然后保存一下
配置vissat
然后在安装目录下找到对应的文件,然后安装进去。
这里总共要加3个
1、QT下的include文件夹
2、QT下的include下的QTcore核心
3、QT下的include下的QTGUI
然后重新打开visual stdio 就可以了
这个地方,就不会像刚才那样会有红色的下划线。
如果想要直接拿到。exe执行文件,那么到这个目录下,但是出现了没有加入
动态库的现象
解决办法:
将这个路径拷贝到环境变量当中
记得,前面一定一定要加分号
现在就可以了
如果想要运行别人的程序,还需要参考QT4/5的程序发布
贴上QT视频的链接:
http://e.youku.com/v/course/play?coid=6426&chid=80612&spm=a2h0v.8244393.2370309.4
在QT当中吧窗体叫做widget,这些都继承自QWidget
signal & slot 信号槽机制就是事件处理机制
窗口坐标
顶级窗口和子窗口
顶级窗口是一个标准窗口,带有边框等等~(独立)
子窗口,就是点击一个button,或者文本框里面的窗口(不独立)
代码解析
在QT当中只要定义窗口就必须有这个Q_OBJECT这个宏
在visual studio当中添加一个窗口的时候
然后在MyWInd
C++学习笔记(四)QT的简单使用 —参考阿发你好相关推荐
- C++学习笔记(一) 基础语法 —参考阿发你好
-###-----------------------– 阿发你好第2章 输出指定宽度的数字 #include <stdio.h> #include <stdlib.h> in ...
- 学习笔记之Qt从入门到精通(三)
整理日期: 2010年4月9日 本文是学习笔记之Qt从入门到精通(二)的接续 Part 3: 进阶学习 Qt4 学习笔记 Qt 可以运行在不同的平台,像是Unix/X11.Windows.Mac OS ...
- Qt学习笔记,Qt国际化
Qt学习笔记,Qt国际化 Qt国际化步骤: 第一步:设置.pro文件,加入TRANSLATIONS为国际化做准备 TRANSLATIONS = language/language_en.ts\ ...
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- JSP学习笔记(四十九):抛弃POI,使用iText生成Word文档
POI操作excel的确很优秀,操作word的功能却不敢令人恭维.我们可以利用iText生成rtf文档,扩展名使用doc即可. 使用iText生成rtf,除了iText的包外,还需要额外的一个支持rt ...
- 吴恩达《机器学习》学习笔记四——单变量线性回归(梯度下降法)代码
吴恩达<机器学习>学习笔记四--单变量线性回归(梯度下降法)代码 一.问题介绍 二.解决过程及代码讲解 三.函数解释 1. pandas.read_csv()函数 2. DataFrame ...
- mysql新增表字段回滚_MySql学习笔记四
MySql学习笔记四 5.3.数据类型 数值型 整型 小数 定点数 浮点数 字符型 较短的文本:char, varchar 较长的文本:text, blob(较长的二进制数据) 日期型 原则:所选择类 ...
- 【学习笔记】网络流算法简单入门
[学习笔记]网络流算法简单入门 [大前言] 网络流是一种神奇的问题,在不同的题中你会发现各种各样的神仙操作. 而且从理论上讲,网络流可以处理所有二分图问题. 二分图和网络流的难度都在于问题建模,一般不 ...
最新文章
- iMeta期刊12名编委入选科睿唯安2021年度高被引学者
- python爬虫工程师-记录一下自己找“python爬虫工程师实习生”岗位的经历
- 在UWP的按钮中使用Segoe MDL2 Assets图标
- TensorFlow版的“Hello World”,运行官网第一个例子
- html5 video js控制摄像头的焦距,html 通过input video canvas 打开摄像头 定制相机
- 309. Best Time to Buy and Sell Stock with Cooldown 最佳买卖股票时机含冷冻期
- springcloud注册中心eureka
- 过程(栈帧结构是干货)
- USACO / Sorting a Three-Valued Sequence (简单题,方法正确性待证)
- ducument.ready不生效的问题 ruby on rails
- 线程(一)__同步以及死锁
- P2P(对等网络)、 PT 下载与 BT 下载
- snakeyaml操作yml文件中注释的处理
- excel工作簿合并怎么处理?
- 类和对象的关系练习题:需求:将汽车改装成3个轮子的车并换个颜色。
- Python爬虫生成二维码应用,突显个性味道
- CSS深入理解之relative
- 每次关机的时候总显示[742.602384]system halted,关不了机,只能强制关机,解决方法
- 测量学matlab使用心得,测量学实习心得体会4篇
- 关于SYSTICK延时函数的两个小疑问
热门文章
- B站笔试真题之[编程题]小A最多会新认识的多少人
- 服务器装系统步骤图解win7,怎么装win7系统?本地硬盘安装win7/XP系统详细教程
- 美学设计标杆+创新影像体验:荣耀50系列2399元起
- RAC ReactiveCocoa 使用小集
- 哪个软件可以制作GIF动态图
- AirtestIDE 教程 : 5分钟上手自动化测试
- vs MD /MDD /ML /MT /MTD的简单介绍
- 安徽大学生攻防赛 crypto-wp
- 【算法讲4:乘性函数(上)】欧拉函数 | 因子和函数 | 因子个数函数
- 显控触摸屏SA-4.3A下载程序提示:选择的HMI型号不匹配