1. 程式人生 > 實用技巧 >系統整理qt筆記1

系統整理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() << "我的按鈕類析構";

}