QT學習---day1---視窗按鈕的操作
//qt學習筆記:
//12_7
//跨平臺,完全面向物件,容易擴充套件,容易組建程式設計。
//QWidget 和 QMainWindow 和 QDialog 之間的關係。
//QWidget是基類,QMainWindow 和 QDialog 是子類。
/*
QWidget 是一個大的空視窗。
QMainWindow 包含一些狀態列,例如檔案、編輯等。
QDialog 對話方塊
*/
/*
專案管理:
團體開發軟體時:git,vss,svn
svn:最常用的工作:update;提交之前先更新,防止衝突;
若出現衝突,就會出現:A寫的----;B寫的----
當協調解決問題後,點選solve提示svn解決了衝突。
會出現的bug:lock; svn可能會自鎖,不能進行任何操作。
此時輸入:unlock;
*/
/*
pro檔案:相當於sln檔案;
*/
//一個問題的解決:https://blog.csdn.net/naturly/article/details/81390377
#include "mywidget.h"
#include <QApplication> //包含標頭檔案 應用程式的標頭檔案;
//main 函式中的操作
//程式的入口 argc命令列變數數量 argv命令列變數陣列;
int main(int argc, char *argv[]) { //應用程式物件 a,Qt中 有且僅有一個應用程式物件; QApplication a(argc, argv); //建立一個 myWidget 物件w。myWidget基類 QWidget myWidget w; //視窗預設是不會彈出的,如果想彈出 呼叫show方法 w.show(); //a.exec()進入訊息迴圈機制,相當於C++ system("pause"); return a.exec(); }
//一個問題的解決方法:https://blog.csdn.net/wxf2012301351/article/details/52182769
//pro的介紹:
#------------------------------------------------- # # Project created by QtCreator 2018-12-07T10:14:28 # #------------------------------------------------- QT += core gui // qt包含的模組 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //大於函式,大於4版本包含widgets模組; TARGET = 123.exe //生成的.exe可執行檔案的名稱---後期要修改程式名可以在這個裡面修改; TEMPLATE = app //模板 ---- 應用程式 # The following define makes your compiler emit warnings if you use # any feature of Qt which has been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ //原始檔 main.cpp \ mywidget.cpp HEADERS += \ //標頭檔案 mywidget.h
//********************************************************************************************************************************************
//QT中的命名規範以及快捷鍵;
//類名:首字母大寫 單詞與單詞之間 首字母大寫
//函式、變數名:首字母小寫,單詞與單詞之間首字母大寫;
//快捷鍵: ctrl + R
//編譯: ctrl + B
//查詢: ctrl + F
//幫助文件: F1
//字型縮放 ctrl + 滑鼠縮放
//自動對齊 ctrl + i
//整行移動 ctrl + shift + ↑ 或者 ↓
//同名之間的 .h .cpp切換 F4
//********************************************************************************************************************************************
//設定視窗和設定按鈕
#include "mywidget.h"
#include <QPushButton>
myWidget::myWidget(QWidget *parent)
: QWidget(parent) //初始化列表;----不要和繼承弄混;
{
//按鈕:
//第一種按鈕方法:
QPushButton * btn = new QPushButton;
//btn -> show(); //show是用頂層方式彈出,如果想在mywidget視窗中顯示,就需要一來mywidget視窗;
//設定父親
btn->setParent(this);//this指標
//設定檔案
btn->setText("德瑪西亞");//將 char*隱式型別轉換為QString;
QPushButton * btn2 = new QPushButton("第二個按鈕",this);
//視窗大小和按鈕大小差不多。這種方式設定,視窗會按照btn2大小設定。
//可以重置視窗的大小。
this -> resize(600,400);
//第二個按鈕會覆蓋第一個按鈕,移動第二個按鈕:
btn2->move(100,100);
//按鈕是否能夠重置大小?
btn2->resize(50,50);
//如何重置視窗的標題:
//this下面的方法,可以不寫this:
setWindowTitle("qt第一個視窗");
//設定固定的視窗大小:
setFixedSize(600,600);
}
myWidget::~myWidget()
{
}
//*****************************************************************************************************************************************************
//************************************************************************************
(重點)
//qt的優點:一定程度下簡化了記憶體回收機制。
//物件樹的概念:
//qt如何釋放記憶體的?
//所有new出來的物件會在視窗關閉後進行自動釋放;
物件樹的概念就是qt提供的記憶體回收機制。通常指定一個new的變數的parent為this來設定。
//*************************************************************************************
qt中的座標系:
從左上角開始為(0,0)原點,向右為x軸正向,向下為y軸正向;
//*************************************************************************************