(二)Qt窗口应用程序Widget


QMainWindow,QWidget,QDialog,这三基类都可以作为顶层窗口
QWidget:是所有窗口类的父类,功能最简单
QMainWindow:如果窗口需要菜单栏,工具栏,状态栏,就需要QMainWindow
QDialog:对话框窗口,最显著的特点:右上角只有一个关闭按钮




main.cpp
应用程序类和窗口类是Qt程序必须的两个类
#include "mywidget.h"
// qt中类名和头文件名一样, 而且没有.h
#include <QApplication> // 应用程序入口
int main(int argc, char *argv[])
{
// 应用程序类, 每一个qt程序中有且只有一个
// 窗口执行起来之后,应用程序类进入一个消息循坏,不断捕捉事件
QApplication a(argc, argv);
// 窗口类, 创建出来之后默认不显示
MyWidget w; // 顶层窗口
// 显示窗口
w.show(); return a.exec(); // a 即应用程序类
}
mywidget.h
#ifndef MYWIDGET_H
#define MYWIDGET_H #include <QWidget>
#include <QPushButton> class MyWidget : public QWidget
{
Q_OBJECT // 如果使用信号和槽, 必须添加这个宏 public:
MyWidget(QWidget *parent = );
~MyWidget(); private:
QPushButton b1;
QPushButton *b2;
}; #endif // MYWIDGET_H
HelloQt.pro文件
#-------------------------------------------------
#
# Project created by QtCreator --04T10::
#
#------------------------------------------------- QT += core gui # qt程序用到哪些模块
# 兼容以前的版本,qt5 以取没有widgets模块,只有gui模块,qt5 从gui中分离出widgets
greaterThan(QT_MAJOR_VERSION, ): QT += widgets # 生成的应用程序的名字
TARGET =
# 指定生成的makefile的类型 lib
TEMPLATE = app # 源文件 \ 换行
SOURCES += main.cpp\
mywidget.cpp \
mybutton.cpp # 头文件 HEADERS += \
mybutton.h \
mywidget.h CONFIG += c++
mywidget.cpp
#include "mywidget.h"
#include "mybutton.h" // 自定义类头文件 MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
/*
* 如果窗口需要依附另外一个窗口, 需要给该窗口指定父类
* 父窗口显示的时候,子窗口也会随之显示
*/
// 初始化
b2 = new QPushButton("hello, qt", this);
// b2->setText("hello, qt");
// b2->show(); b1.setParent(this);
b1.setText("我是老二"); // 改变位置 -- 移动
// 窗口坐标系 原点:左上角 x:向右递增, y 向下递增
b1.move(, );
b1.resize(, ); // 内存自动回收
// 1. 从QObject派生的类 1.直接 2.间接
// 2. 指定父类, 父亲析构的时候,先析构他的孩子 // 创建自定义按钮对象
MyButton* btn = new MyButton(this);
btn->setText("wo shi mybutton"); // 设置窗口标题
this->setWindowTitle("明天就要离开中腾....");
// this->resize(200, 300);
this->setFixedSize(, );
this->setWindowIcon(QIcon("D:\\Luffy.png")); // 需求 b1 关闭窗口
// connect(b1, 发出的信号, this, 处理信号的槽函数);
connect(&b1, &QPushButton::clicked, this, &MyWidget::close);
/*
* b1: 信号的发出者, 此参数是一个指针
* &QPushButton::clicked: 信号发出者, 内部的一个信号
* 格式: & + 信号发出者类的名字 + :: + 信号的名字
* this: 信号的接收者, 此参数是一个指针
* &MyWidget::close: 信号的处理函数, 属于this
*/ } MyWidget::~MyWidget()
{ }

(二)Qt窗口应用程序Widget的更多相关文章
- Qt+ECharts开发笔记(二):Qt窗口动态调整大小,使ECharts跟随Qt窗口大小变换而变换大小
前言 上一篇将ECharts嵌入Qt中,在开始ECharts使用之前,还有一个很重要的功能,就是在窗口变换大小的时候,ECharts的图表尺寸也要跟随Qt窗口变换大小而变换大小. Demo演示 ...
- 自定义QT窗口部件外观之QStyle
自定义QT窗口部件外观 重新定义Qt内置窗口部件的外观常用的方法有两种:一是通过子类化QStyle 类或者预定义的一个样式,例如QWindowStyle,来定制应用程序的观感:二是使用Qt样式表. Q ...
- Qt 窗口属性简介之Qt::WA_DeleteOnClose
一.简述 今天介绍一个简单的窗口属性——Qt::WA_DeleteOnClose. 在正常创建窗口后,我们一般会调用close()方法来关闭窗口,这里我们看一下Q助手中关于close()方法的介绍. ...
- Qt窗口部件及子部件
QWidget类是所有用户界面对象的基类,被称为基础窗口部件. #include <QApplication> #include<QLabel> #include<QWi ...
- CentOS下Qt窗口透明效果失效,成黑色背景的问题
一.问题 Linux系统下Qt窗口的透明效果成了黑色,但同样的代码在windows机子上有透明效果,主要是修改系统的配置,仅在centos6.3及其以上版本实验过.其他系统可以相应配置. 二.问题运行 ...
- 深度探索QT窗口系统(五篇)
窗口作为界面编程中最重要的部分,没有窗口就没有界面,是窗口让我们摆脱了DOS时代,按钮是一个窗口,文本框是一个窗口,标签页是一个窗口,...一个窗口可以由多个窗口组成,每天我们都在与窗口打交道,当你打 ...
- 调色板类QPalette——包含了Qt窗口不见的颜色组(collor group),和Windows右键属性外观非常类似
QPalette类包含了Qt窗口不见的颜色组(collor group); 1.Active组,该组的颜色用户当前活动的(active)窗口,即具有键盘或鼠标焦点的窗口; 2.Inactive组,该组 ...
- HOOK API(二)—— HOOK自己程序的 MessageBox
HOOK API(二) —— HOOK自己程序的 MessageBox 0x00 前言 以下将给出一个简单的例子,作为HOOK API的入门.这里是HOOK 自己程序的MessageBox,即将自己程 ...
- objective-III 窗口应用程序
objective-III 一.创建窗口应用程序 打开xcode->create->在iso目录下选择empty-null->创建 在打开的项目文件名上右击NEW FILE,在io ...
随机推荐
- 【笔记】两个根因分析方法:5WHY&10WHY
什么是问题根因分析 根本原因分析(root cause analysis):通过调查和分析问题哪里出错.为什么出错,寻求防止差错事故再次发生的必要措施,从而提高服务安全和质量. 根因分析目标 问题(发 ...
- MongoDB副本集功能及节点属性梳理
副本集的主要功能 副本集是MongoDB高可用的基础,其主要作用 归纳为以下几点: (1)高可用,防止设备(服务器.网络)故障.提供自动FailOver功能. (2)无需配置高可用性虚拟节点:无论是S ...
- [20190401]跟踪dbms_lock.sleep调用.txt
[20190401]跟踪dbms_lock.sleep调用.txt --//自己在semtimedop函数调用理解错误,加深理解,跟踪dbms_lock.sleep调用的情况. 1.环境:SCOTT@ ...
- Redis数据库云端最佳技术实践
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云数据库 TencentDB发表于云+社区专栏 邹鹏,腾讯高级工程师,腾讯云数据库Redis负责人,多年数据库.网络安全研发经验. ...
- Swift UIFont
设置字体 titleLabel.font = UIFont.systemFont(ofSize: 17.0, weight: .heavy)
- VMware虚拟机在仅主机模式下的网卡无法动态获取IP
自己在VMware虚拟机中开启一台主机的时候,发现比以往的开机速度慢了好多,起初不以为然,直到用Xshell通过ssh远程连接eth1的ip地址才发现连接失败(这个ip是之前eth1正常的时候获取的i ...
- Python Docker 查看私有仓库镜像【转】
文章来源:python Docker 查看私有仓库镜像 pip 安装: # 首先安装epel扩展源: yum -y install epel-release # 更新完成之后,就可安装pip: yum ...
- python进阶之正则表达式
概念: 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. 目的? 给定一个正则表 ...
- python 结巴分词学习
结巴分词(自然语言处理之中文分词器) jieba分词算法使用了基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能生成词情况所构成的有向无环图(DAG), 再采用了动态规划查找最大概率路径,找出基于 ...
- 错误ERROR datanode.DataNode (DataXceiver.java:run(278)) - hadoop07:50010DataXceiver error processing unknown operation src:127.0.0.136479 dst:127.0.0.150010
原因: Ambari 每分钟会向datanode发送"ping"连接一下去确保datanode是正常工作的.否则它会触发alert.但是datanode并没有处理空内容的逻辑,所以 ...