系統整理qt筆記1
阿新 • • 發佈:2020-11-27
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()); //視窗物件 它的父類是QWidgetMyWidget 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() << "我的按鈕類析構"; }