Qt Gui 第一章~第二章
一、Qt启动
qmake -project; 创建xxx.pro
qmake xxx.pro; 生成makefile文件
make;构建该程序,生成可执行文件
运行程序:windows:xxx;mac:open xxx.app
二、Qt特性
1、支持html文本的label;
2、使用信号SIGNAL和槽SLOT;用了这两个的类都要继承QObject、在类的开头添加Q_OBJECT、signals里面的函数不用实现;SLOT函数的参数SIGNAL要一一对应,SIGNAL函数的参数个数可以比SLOT多,但是不能少;使用信号和槽连接用QObject::connect(); 连接的有:多个信号单个槽、单个信号多个槽、信号连接信号;如果不连接了可以用disconnect断开连接;手动发射信号通过emit关键字:emit signals_func(param1, param2...);
3、UI文件;uic命令可以将xxx.ui文件生成对应的.h文件(mac 环境):uic gotocelldialog.ui -o ui_gotocelldialog.h 自动生成了对应的.h文件;当使用了对应的ui文件,则需要在构造函数添加对应的函数:setupUi(this); 并且继承ui_gotocelldialog.h 中对应的类,一般是namespace Ui 中的那个类,即:Ui::GotoCelldialog
下面是Ui文件生成时的另一个特性

4、UI文件;直接载入的方式;在qt4中,pro文件要添加CONFIG+=uitools,qt5则添加QT+=uitools;
//Qt4的头文件
//#include<QtUiTools/QUiLoader> //qt5的头文件
#include <QtUiTools> QUiLoader uiLoader;
QFile file("sortdialog.ui");
QWidget* sortDialog = uiLoader.load(&file);
文件载入方式可以不用修改代码地更新界面等;但是需要逻辑比较复杂的则比较难以实现
三、点滴知识
triggered()和toggled(bool)的区别:triggered是指被触发了的事件,比如按钮被点击了(pushdown和pushup,并不只是其中之一),总之一点就是本身固有特性被触发了; toggled则是有开关的意思;比如check按钮选中或者不选中;
moc工具生成了Q_OBJECT要求QObject子类要实现的一些函数:metaObject(),tr(),qt_metacall(); 具体可以看文件列表中多生成的moc_predefs.h和moc_xxx.cpp;
问题及解决:
1、qt4的pro用qt5编译时显示:WARNING: TARGET is empty; 解决方案:在pro文件中添加:TARGET = sort1;指定要编译成的目标文件名
Qt Gui 第一章~第二章的更多相关文章
- 《细说PHP》第四版 样章 第二章 PHP的应用与发展 1
<细说PHP>第四版 样章 第二章 PHP的应用与发展 1 学习任何编程语言之前,先了解一下它的应用与发展是很有必要的.从Web开发的历史看来,PHP.Python和Ruby几乎是同时出现 ...
- CSS3秘笈复习:第一章&第二章&第三章
第一章: 1.<cite>标签不仅可以将网页设置为斜体,还能给标题做上标记,使它便于被搜索引擎搜索到. 第二章: 1.import指令链接样式表: CSS本身有一种添加外部样式的方法:@i ...
- Practical Vim 第一章 & 第二章
第一章:Vim 解决问题的方式 前言 本质上讲,我们的工作是重复性的.凡是可以简化重复性操作的方式,都会成倍地节省我们的时间. Vim 对重复性操作进行了优化.它之所以能高效地重复,是因为它会记录我们 ...
- Linux第一章第二章学习笔记
第一章 Linux内核简介 1.1 Unix的历史 它是现存操作系统中最强大最优秀的系统. 设计简洁,在发布时提供原代码. 所有东西都被当做文件对待. Unix的内核和其他相关软件是用C语言编写而成的 ...
- Linux内核设计与实现 第一章 第二章
第一章 Linux内核简介 Unix特点: (1) Unix很简洁,仅仅提供几个几百个系统调用并且有一个非常明确的设计目的 (2) 在Unix中,所有的东西都被当作文件对待,通过一套相 ...
- 通过游戏学python 3.6 第一季 第二章 实例项目 猜数字游戏--核心代码--猜测次数 可复制直接使用 娱乐 可封装 函数
猜数字游戏--核心代码--猜测次数 #猜数字--核心代码--猜测次数 number=33 amount=3 count=0 while count<=amount: conversion ...
- progit 学习笔记-- 1 第一章 第二章
* 1 起步** 关于版本控制*** 什么是版本控制?记录文件变化,查阅特定版本,回溯到之前的状态.任何类型的文件进行版本控制.复制整个目录 加上备份时间 简单 混淆 无法恢复本地版本控制 数据库记 ...
- Java入门 第一季第二章 变量和常量
这是我学习慕课网Java课程的笔记.原视频链接为:http://www.imooc.com/learn/85 2-1 Java中的keyword PS:Javakeyword区分大写和小写 2-2 认 ...
- 《Linux内核设计与实现》课本第一章&第二章学习笔记
<Linux内核设计与实现>课本学习笔记 By20135203齐岳 一.Linux内核简介 Unix内核的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的. Unix中一切皆文件 ...
随机推荐
- 【React Native】使用react-native-wechat 进行微信好友、微信朋友圈进行分享
前提:微信平台注册,请自行百度.本篇主要是针对react native中使用react-native-wechat进行android端的分享. 1.Android版本安装配置方法 在android/s ...
- net start MySQL57 MySQL57 服务正在启动 . MySQL57 服务无法启动。
造成这种情况的原因有很多,如果直接百度错误信息的话,不一定能很快解决问题,所以,出现这种情况,我们可以使用 mysqld --console 命令来查看报错信息,然后根据报错信息来百度,这样就很快定位 ...
- alpine安装telnet等工具
alpine确实是很精简,但是对于熟悉了centos和ununtu的个人来说,实在是不习惯. 因此,记录关于alpine的一些包安装,以及操作细节(逐渐补充). 1. telnet >>& ...
- Python 使用OS模块调用 cmd
在os模块中提供了两种调用 cmd 的方法,os.popen() 和 os.system()os.system(cmd) 是在执行command命令时需要打开一个终端,并且无法保存command命令的 ...
- Node中使用MongoDB
简介 MongoDB 中文文档 MongoDB是一个介于关系数据库和非关系数据库(nosql)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. Mongoose 在Node中可以使用 Mo ...
- HTML连载66-过度模块的连写、弹性效果
一.过渡模块的连写 1.过渡连写格式: 过渡属性 过渡时长 运动速度 延迟时间: 2.过渡连写注意点: (1)和分开写一样,如果想要多个属性添加过渡效果,也是使用逗号来隔开即可. (2)连写的时 ...
- RedisDeskTopManager连接时提示:can't nonnect to redis-server
场景 在使用RedisDeskTopManager客户端可视化工具连接Redis服务端时提示: 注: 博客: https://blog.csdn.net/badao_liumang_qizhi关注公众 ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(10)
目录 /etc/fstab 文件的作用是什么? Linux 内核的图形化启动是怎么回事? Linux 系统中的文件名是否以大小写来进行区别? 「GRUB 中无法找到硬盘」怎么解决? 「GRUB 及配置 ...
- 基于90nm CMOS技术的功能齐全的64Mb DDR3 STT-MRAM
自旋转矩磁阻随机存取存储器(ST-MRAM)有望成为一种快速,高密度的非易失性存储器,可以增强各种应用程序的性能,特别是在用作数据存储中的非易失性缓冲器时设备和系统.为此,everspin开发了基于9 ...
- 【MySql】数据库连接异常:Thelastpacketsentsuccessfullytotheserverwas0millisecondsago
参考链接:http://blog.sina.com.cn/s/blog_7540bf5f0102xjpk.html 最近新入职,用了新版的mysql8数据库,结果连接数据库时出现了问题,报了几个异常, ...