系统整理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() << "我的按钮类析构"; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)