系统整理qt笔记1

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() << "我的按钮类析构";

}

 

posted @ 2020-11-27 20:42  胖白白  阅读(149)  评论(0编辑  收藏  举报