main.cpp

#include "mywidget.h"
#include <QApplication>//包含一个应用程序类的头文件
#include <iostream>
#include <QThread>
#include <QDebug>
#include <thread>
#include <QString> //帮助文档 F1 退出ESC
//自动对其 ctrl + i
//同名之间的.h和.cpp切换 F4 using namespace std; //main程序入口 argc命令行变量的数量 argv命令行变量的数组
int main(int argc, char *argv[])
{
//a应用程序对象,在QT中,应用程序对象,有且只有一个
QApplication a(argc, argv); cout << "nihao" << endl; //打印线程id方法 1
QString LogInfo;
LogInfo.sprintf("%p", QThread::currentThread());
qDebug() << "OpenSerialPort " <<"threadID : "<<LogInfo; //打印线程id方法 2
//以下代码片段得到当前线程的id,并通过QT输出窗口输出调试信息
std::thread::id id = std::this_thread::get_id();
cout << "----打印线程id:----" << id;
// std::stringstream sin;
// sin << id; // qDebug()<<"threadID : "<<QString::fromStdString(sin.str()); //窗口对象 它的父类是QWidget
MyWidget w;
w.show(); //在应用程序对象进入消息循环(机制)
//让代码阻塞到这儿
return a.exec();
}

mywidget.h

#ifndef MYWIDGET_H
#define MYWIDGET_H #include <QWidget> class MyWidget : public QWidget
{
Q_OBJECT // Q_OBJECT 宏,允许类中使用信号和槽的机制 public:
MyWidget(QWidget *parent = 0);
~MyWidget();
}; #endif // MYWIDGET_H

mywidget.cpp

#include "mywidget.h"
#include <QPushButton>
#include "mypushbutton.h" MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
//创建一个按钮 让btn对象依赖在 MyWidget中
QPushButton * btn1 = new QPushButton("第一个按钮", this);
btn1->resize(80, 20);
//重置窗口大小
//resize(600, 400);
//设置窗口标题
setWindowTitle("第一个窗口");
//设置固定窗口大小(用户不能修改)
setFixedSize(600, 400); //创建第二个按钮
QPushButton * btn2 = new QPushButton;
btn2->setParent(this);
btn2->setText("第二个按钮");
btn2->move(100, 100); //创建自己的按钮
MyPushButton * btn3 = new MyPushButton;
btn3->setParent(this);
btn3->setText("自己的按钮");
btn3->move(200, 0); //需求 点击我的按钮 关闭窗口
connect(btn3, &QPushButton::clicked, this, &MyWidget::close);
//connect(btn3, &MyPushButton::clicked, this, &QWidget::close); } MyWidget::~MyWidget()
{ }

mypushbutton.h

#ifndef MYPUSHBUTTON_H
#define MYPUSHBUTTON_H #include <QPushButton> class MyPushButton : public QPushButton
{
Q_OBJECT
public:
explicit MyPushButton(QWidget *parent = nullptr); ~MyPushButton(); signals: public slots:
}; #endif // MYPUSHBUTTON_H

mypushbutton.cpp

#include "mypushbutton.h"

#include <QDebug>

MyPushButton::MyPushButton(QWidget *parent) : QPushButton(parent)
{
qDebug() << "我的按钮类构造调用"; } MyPushButton::~MyPushButton()
{
qDebug() << "我的按钮类析构"; }

系统整理qt笔记1的更多相关文章

  1. 系统整理qt笔记3

    qtcreator中不能输入中文: https://blog.csdn.net/qq_15725099/article/details/97305507 main.cpp #include " ...

  2. 麒麟系统开发笔记(二):国产麒麟系统搭建Qt开发环境安装Qt5.12

    前言   开发国产应用,使用到银河麒麟V4,V10,本篇以V10记录,参照上一篇可安装V4.V7.V10三个版本,麒麟V4系自带了Qt,麒麟V10没有自带Qt,需要自己编译搭建环境.   银河麒麟V1 ...

  3. 《Android系统开发》笔记

    <Android系统开发>笔记1:Android系统概述 Android四层架构: 1. Linux Kernel&driver层 a.依赖于Linux 2.6内核,包含安全性.内 ...

  4. Linux系统运维笔记(五),CentOS 6.4安装java程序

    Linux系统运维笔记(五),CentOS 6.4安装java程序 用eclipse编译通的java程序,现需要实施到服务器.实施步骤: 一,导出程序成jar包. 1,在主类编辑界面点右健,选  ru ...

  5. Linux系统运维笔记(四),CentOS 6.4安装 MongoDB

    Linux系统运维笔记(四),CentOS 6.4安装 MongoDB 1,下载 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6 ...

  6. Linux系统运维笔记(四),CentOS 6.4安装Nginx

    Linux系统运维笔记(四),CentOS 6.4安装Nginx 1,安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool op ...

  7. Linux系统运维笔记(三),设置IP和DNS

    Linux系统运维笔记(三),设置IP和DNS 手工配置静态的IP地址 也就是手工配置IP地址.子网掩码.网关和DNS. vi /etc/sysconfig/network-scripts/ifcfg ...

  8. Linux系统运维笔记(二),Linux文件编辑命令

    Linux系统运维笔记 Linux文件编辑命令 首先我们使用命令 vi filename 打开一个文件,这个时候进入到的是命令模式 接下来我们按i,然后键盘随便输入写内容. 然后按ESC重新进入到命令 ...

  9. Linux系统运维笔记(一),查看系统版本和设置系统时间

    Linux系统运维笔记 查看系统版本和设置系统时间 查看系统版本 lsb_release -a (适用于所有的linux,包括Redhat.SuSE.Debian等发行版,但是在debian下要安装l ...

随机推荐

  1. 怎么重载网卡?ip修改 HHS服务器

    目录 一:目录结构知识详述 1.网卡配置文件 2,ip修改 3.重载网卡信息 4.关闭网络管理器(因为已经有了network)所有要关闭NetworkManager不然会发生冲突 5.判断SSH服务是 ...

  2. Spring Cloud Alibaba Nacos 服务注册与发现功能实现!

    Nacos 是 Spring Cloud Alibaba 中一个重要的组成部分,它提供了两个重要的功能:服务注册与发现和统一的配置中心功能. 服务注册与发现功能解决了微服务集群中,调用者和服务提供者连 ...

  3. Squid代理服务器应用

    Squid代理服务器应用 目录 Squid代理服务器应用 一.Squid的脚本概念 1. Squid的作用 2. Web代理的工作机制 3. 代理服务器的概念 4. 代理服务器的作用 5. 代理的基本 ...

  4. ROS::message_filters中的一个报错(mt::TimeStamp……)

    『方便检索』 ros::Time msg_time = mt::TimeStamp<typename mpl::at_c<Messages, i>::type>::value( ...

  5. 详解Java12新增语法switch表达式

    引言 在学习分支语句的时候,我们都学过 switch 语句,相比于 if-else 语句,他看起来更加整洁,逻辑更加清晰,Java中当然也给我们提了相关的 switch 方法.但是Java的强大之处在 ...

  6. 晋升挂了!leader说不是我技术不行

    大家好,我是对白. 今天给大家分享一位朋友在互联网大厂晋升失败的故事,不是每一位校招生第一年都可以稳稳晋升的,这不仅取决于你的业务收益,还取决于你是否会包装自己的项目,以下为原文. 晋升 去年秋季,我 ...

  7. SpringMVC5中,@ModelAttribute注解详解

    看这个注解的前提最好熟悉一下SpringMVC的model组件,该注解可以有五种使用方式: ①②③为 @ModelAttribute 跟@RequestMapping 分开修饰方法,被@ModelAt ...

  8. k8s 通过helm发布应用

    什么是helm? Helm 是 Kubernetes 的包管理器.Helm 是查找.分享和使用软件构建 Kubernetes 的最优方式. 在红帽系的Linux中我们使用yum来管理RPM包,类似的, ...

  9. Java面向对象之各种变量详解

    在Java中一定有很多变量让大家头疼,成员变量.类变量.局部变量等等,今天就来分别认识认识他们吧! Java面向对象之各种变量详解 前言 在 Java语言中, 根据定义变量位置的不同,可以将变量分成两 ...

  10. Solution -「洛谷 P6292」区间本质不同子串个数

    \(\mathcal{Description}\)   Link.   给定长度为 \(n\),仅包含小写字符的字符串 \(s\),\(m\) 次询问,每次询问一个子串 \(s[l:r]\) 的本质不 ...