QT學(xué)習目的,崗位需求
上位機:用戶(hù)使用的那個(gè)小平板(帶有界面,應用程序)
下位機:底層硬件傳感器,底層的硬件電路板
1.學(xué)習目的
QT可以幫助我們開(kāi)發(fā)上位機程序
QT使用C++寫(xiě)代碼
2.崗位需求
QT開(kāi)發(fā)工程師 --》二年左右的經(jīng)驗 1.5----3w之間
QT的 應用領(lǐng)域,發(fā)展歷史
1.QT的特點(diǎn)
跨平臺:市面上主流的操作系統都能支持
window
linux
蘋(píng)果
安卓
QT下載安裝,不同版本QT介紹
1.QT下載鏈接
https://download.qt.io/archive/qt/
2.不同版本的QT安裝程序
.exe --》window版本的QT
.dmg --》蘋(píng)果電腦
.run --》linux系統
新建QT工程
1.集成開(kāi)發(fā)環(huán)境介紹
QT creator --》集成開(kāi)發(fā)環(huán)境(見(jiàn)圖示)





2.新建QT工程
方法一:點(diǎn)擊projects中new按鈕
方法二:點(diǎn)擊文件菜單項 ,選擇新建文件/工程
注意:選擇QT widgets application(QT窗口應用程序)
工程名和路徑名不能有中文
3.QT工程介紹
第一個(gè):.pro文件(工程配置文件,跟我們前面學(xué)習的Makefile有點(diǎn)類(lèi)似)
QT += core gui //往QT工程中添加核心庫和圖形用戶(hù)界面庫
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //添加窗口庫
CONFIG += c++11 //選用C++11標準語(yǔ)法去編譯程序
SOURCES += \
main.cpp \
mainwindow.cpp //指定要編譯的源碼
HEADERS += \
mainwindow.h //指定頭文件
FORMS += \
mainwindow.ui //界面設計文件,用來(lái)保存你在ui設計師中設計好的ui界面
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target //指定環(huán)境變量
第二個(gè):頭文件--》類(lèi)的定義
class MainWindow : public QMainWindow{ Q_OBJECT //宏定義,暫時(shí)不理會(huì ) public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: Ui::MainWindow *ui;};第三個(gè):主函數--》
int main(int argc, char *argv[]){QApplication a(argc, argv); //QApplication類(lèi),用來(lái)管理你的QT工程,用來(lái)支持信號與槽,用來(lái)管理事件的觸發(fā)MainWindow w;w.show(); //顯示主窗口returna.exec(); //進(jìn)入事件循環(huán)(不斷地幫你刷新主窗口)}
QT的學(xué)習方法
1.QT中的內容非常多
組件的屬性有很多:掌握主要的屬性設置,其他的屬性遇到了上網(wǎng)查詢(xún)
UI設計師界面的使用--》傻瓜式操作(所見(jiàn)即所得)
1.作用
組件(控件):按鈕 滑動(dòng)條 進(jìn)度條......
提供了大量的組件幫助我們設計ui界面
2.跳轉到ui設計師
雙擊工程中ui文件,自動(dòng)跳轉
組件如何使用:鼠標左鍵直接拖動(dòng)即可
復制組件:ctrl按住不松開(kāi),鼠標拖動(dòng)組件即可復制
3.常用的組件
注意:任何一個(gè)組件,你需要查看修改它的屬性,都要先用鼠標選中該組件,再去查看修改屬性
(1)標簽label
作用一:用來(lái)顯示文字
作用二:用來(lái)顯示圖片
void setPixmap(const QPixmap &)參數::QPixmap(constQString &fileName)fileName --》你要顯示的圖片路徑名標簽顯示圖片有兩種優(yōu)化方式
方式一:讓圖片去自動(dòng)適應標簽的大小(標簽的大小是固定的,讓圖片自動(dòng)改變大小去適應標簽)
QPixmap mymap(piclist.at(n)); //創(chuàng )建了繪圖設備mymap.scaled(ui->label->width(),ui->label->height()); //調整圖片的寬高,讓其跟標簽一致ui->label->setScaledContents(true); //讓圖片可以適應標簽ui->label->setPixmap(mymap);
方式二:讓標簽去自動(dòng)適應圖片的大小
QPixmap mymap(piclist.at(n)); //創(chuàng )建了繪圖設備ui->label->resize(mymap.width(),mymap.height());ui->label->setPixmap(mymap);常用屬性
geometry --》定位坐標,長(cháng)寬大小
font --》設置字體
(2) 單行輸入框 lineEdit
作用:輸入一行字符串信息,不能換行
常用屬性
geometry --》定位坐標,長(cháng)寬大小font --》設置字體placeholdertext --》設置默認的提示信息echomode --》設置輸入內容是否隱藏normal--》不隱藏password--》隱藏maxlength--》設置輸入框的最大字符個(gè)數(英文字母一個(gè)算一個(gè))中文一個(gè)算一個(gè)
(3) 普通按鈕 pushbutton
作用:添加一些可以點(diǎn)擊的按鈕
常用屬性
geometry --》定位坐標,長(cháng)寬大小
font --》設置字體
(4)文本瀏覽框 textBrowser
作用:顯示文本內容,只能顯示,不能編輯修改
方法:setText(你要顯示的內容)
(5)文本編輯框 textEdit
作用:可以顯示文本,也可以編輯
方法:setText(你要顯示的內容)
QString QTextEdit::toPlainText() const //返回文本編輯框中所有的內容(6)lcdNumber
作用:顯示數字
方法:display() //可以顯示整數,小數
屬性:digitcount --》設置最大多少位數字
QT中的樣式設計,添加資源文件
1.樣式設計
(1)什么是樣式
為了讓你的ui界面更加的美觀(guān)好看
如何彈出QT的樣式表
方法一:點(diǎn)擊屬性中的stylesheet
方法二:右鍵點(diǎn)擊組件,選擇改變樣式表
(2)QT中常用的樣式設計語(yǔ)句(qss語(yǔ)句)
background-color: rgb(85, 255, 255); //設置背景顏色background-image: url(:/new/prefix1/pic/3.jpg); //設置背景圖片background-image: url(你需要的圖片的絕對路徑);border-image: url(:/new/prefix1/pic/2.jpg); //設置邊框圖片(邊框圖片跟組件的大小保持一致)border-image: url(你需要的圖片的絕對路徑);border-radius:15px; //把倒角設置為15個(gè)像素倒角的大小不能超過(guò)組件高度的一半border:2px solid #ff0000; //把邊框的寬度設置為2個(gè)像素,顏色設置成ff0000QPushButton:pressed{ 設置按鈕按下的時(shí)候背景圖片 用于主窗口的樣式設計background-image: url(:/button_down.png);}QPushButton:pressed#regBt{ 設置指定按鈕regBt按鈕按下時(shí)候背景圖片 用于主窗口的樣式設計background-image: url(:/button_down.png);}QPushButton:hover{ 用于主窗口的樣式設計background-color:#ff00ff; 鼠標進(jìn)入控件設置背景顏色}QMainWindow{border-image: url(:/new/prefix1/pic/3.jpg);} //讓圖片只作用于主窗口 用于主窗口的樣式設計
注意:QT中的路徑的寫(xiě)法跟window的路徑寫(xiě)法是不同
比如:window路徑是: C:\note\temp\1.c
QT代碼中這個(gè)路徑改成:C:/note/temp/1.c
2.QT工程中添加資源文件
(1)什么是資源文件
只要是你從外界拿過(guò)來(lái)的文件都叫資源文件,比如:圖片,音頻文件,視頻文件
(2)如何添加資源文件到QT工程中
第一步:準備好你要添加的資源文件,拷貝一份到你的工程目錄下(新建文件夾保存)
第二步:右鍵點(diǎn)擊工程名,選擇QT,選擇QT resource file --》點(diǎn)擊add prefix,點(diǎn)擊add file--》自動(dòng)彈出對話(huà)框,你選擇之前要添加的圖片文件
最后ctrl+s保存即可
純代碼實(shí)現登錄界面(C++基礎要扎實(shí))
1.為什么要掌握純代碼
第一:學(xué)習面向對象編程思想--》查詢(xún)類(lèi)和方法,學(xué)會(huì )自動(dòng)思考閱讀QT中api文檔
第二:代碼實(shí)現的功能,肯定比ui設計師強大
2.總結QT的api文檔規律(QT助手)
規律一:組件的類(lèi)名有統一的命名規則
pushButton --》Q(chēng)PushButton
label --》Q(chēng)Label
規律二:頭文件跟類(lèi)名一樣
#include <QPushButton>
規律三:ui設計師中所有的屬性都有對應的接口函數去設置屬性
這些函數都有統一的命名規則 setxxxxx() //xxxxx就是你見(jiàn)到的屬性的英文單詞名字
比如:屬性名 geometry --》函數名setGeometry()
font --》函數名setFont()
3.具體步驟
第一步:創(chuàng )建一個(gè)標簽對象--》顯示標題
(1)構造函數
QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
參數: text --》你要顯示在標簽上的文字信息
QString類(lèi)似于C++中的string
parent --》表示標簽的父窗口(標簽在哪個(gè)窗口顯示,那個(gè)窗口就是它的父窗口)
(2)設置位置坐標,寬高
void QWidget::setGeometry(int x, int y, int w, int h)參數:x y --》坐標位置w h --》寬和高設置字體
voidsetFont(const QFont &)參數: QFont --》Q(chēng)T中封裝好專(zhuān)門(mén)表示各種字體的類(lèi)名QFont::QFont(constQString &family, int pointSize = -1)參數:family --》字體的名字pointSize --》字體大小
第二步:創(chuàng )建兩個(gè)輸入框--》賬號和密碼輸入
(1)構造函數
QLineEdit(QWidget *parent = nullptr)參數:parent --》表示單行輸入框的父窗口(2)設置默認提示字符串
void setPlaceholderText(const QString &)參數:你要顯示的提醒信息
(3)設置密碼隱藏
void setEchoMode(QLineEdit::EchoMode)參數:QLineEdit::Normal --》不隱藏 QLineEdit::Password--》隱藏設置最大長(cháng)度
void setMaxLength(int)參數:最大字符數量
設置樣式
void setStyleSheet(const QString &styleSheet) 參數:styleSheet --》你要設置的樣式語(yǔ)句 QString str='輸入賬號'; setPlaceholderText(str);第三步:創(chuàng )建兩個(gè)按鈕
(1)構造函數
QPushButton(const QString &text, QWidget *parent = nullptr)參數:text --》按鈕的字面信息parent --》按鈕的父窗口
UI設計師和代碼配合型

UI純代碼實(shí)現界面
#include 'loginwin.h'
#include <QApplication>#include <QLabel>#include <QFont>#include <QLineEdit>#include <QPushButton>int main(int argc, char *argv[]){ QApplication a(argc, argv); loginwin w;
//給主窗口添加邊框圖片 w.setStyleSheet('QMainWindow{border-image: url(C:/Users/Administrator/Desktop/share/2.jpg);} ');
//準備 一個(gè)標簽 QLabel *lb1=new QLabel('歡迎來(lái)到Qt歷險記',&w); //設置標簽的坐標和寬高 lb1->setGeometry(180,10,600,50); //設置字體 QFont myfont('楷體',30); lb1->setFont(myfont);
//準備兩個(gè)輸入框 QLineEdit *usrle=new QLineEdit(&w); QLineEdit *passle=new QLineEdit(&w); //設置坐標和大小 usrle->setGeometry(200,100,350,40); passle->setGeometry(200,150,350,40); //設置字體 QFont font1('楷體',20); usrle->setFont(font1); passle->setFont(font1); //設置默認提示的字符串 usrle->setPlaceholderText('請輸入賬號'); passle->setPlaceholderText('請輸入密碼'); //設置密碼隱藏 passle->setEchoMode(QLineEdit::Password); //隱藏 //設置位數 usrle->setMaxLength(8); passle->setMaxLength(8); //設置輸入框的樣式 //usrle->setStyleSheet('border-radius:10px;'); //分開(kāi)寫(xiě) // usrle->setStyleSheet('border:2px solid#ff0000;');
usrle->setStyleSheet('border-radius:10px;border:2px solid#ff0000;'); //合并寫(xiě) passle->setStyleSheet('border:2px solid#ff0000;');
//定義兩個(gè)按鈕 QPushButton *bt1=new QPushButton('登錄',&w); QPushButton *bt2=new QPushButton('注冊',&w); //設置坐標,大小 bt1->setGeometry(180,300,60,40); bt2->setGeometry(380,300,60,40);
w.show(); return a.exec();}
聯(lián)系客服