QT學習目的,崗位需求 上位機:用戶使用的那個小平板(帶有界面,應用程序) 下位機:底層硬件傳感器,底層的硬件電路板 1.學習目的 QT可以幫助我們開發(fā)上位機程序 QT使用C++寫代碼 2.崗位需求 QT開發(fā)工程師 --》二年左右的經(jīng)驗 1.5----3w之間 QT的 應用領域,,發(fā)展歷史 1.QT的特點 跨平臺:市面上主流的操作系統(tǒng)都能支持 window linux 蘋果 安卓 QT下載安裝,不同版本QT介紹 1.QT下載鏈接 https://download./archive/qt/ 2.不同版本的QT安裝程序 .exe --》window版本的QT .dmg --》蘋果電腦 .run --》linux系統(tǒng) 新建QT工程 1.集成開發(fā)環(huán)境介紹 QT creator --》集成開發(fā)環(huán)境(見圖示) 2.新建QT工程 方法一:點擊projects中new按鈕 方法二:點擊文件菜單項 ,,選擇新建文件/工程 注意:選擇QT widgets application(QT窗口應用程序) 工程名和路徑名不能有中文 3.QT工程介紹 第一個:.pro文件(工程配置文件,跟我們前面學習的Makefile有點類似) QT += core gui //往QT工程中添加核心庫和圖形用戶界面庫 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //添加窗口庫 CONFIG += c++11 //選用C++11標準語法去編譯程序 SOURCES += \ main.cpp \ mainwindow.cpp //指定要編譯的源碼 HEADERS += \ mainwindow.h //指定頭文件 FORMS += \ mainwindow.ui //界面設計文件,,用來保存你在ui設計師中設計好的ui界面 qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target //指定環(huán)境變量 第二個:頭文件--》類的定義 class MainWindow : public QMainWindow { Q_OBJECT //宏定義,暫時不理會 public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: Ui::MainWindow *ui; }; 第三個:主函數(shù)--》
QT的學習方法 1.QT中的內(nèi)容非常多 組件的屬性有很多:掌握主要的屬性設置,,其他的屬性遇到了上網(wǎng)查詢 UI設計師界面的使用--》傻瓜式操作(所見即所得) 1.作用 組件(控件):按鈕 滑動條 進度條...... 提供了大量的組件幫助我們設計ui界面 2.跳轉(zhuǎn)到ui設計師 雙擊工程中ui文件,自動跳轉(zhuǎn) 組件如何使用:鼠標左鍵直接拖動即可 復制組件:ctrl按住不松開,,鼠標拖動組件即可復制 3.常用的組件 注意:任何一個組件,,你需要查看修改它的屬性,都要先用鼠標選中該組件,,再去查看修改屬性 (1)標簽label 作用一:用來顯示文字 作用二:用來顯示圖片 void setPixmap(const QPixmap &) 參數(shù)::QPixmap(constQString &fileName) fileName --》你要顯示的圖片路徑名 標簽顯示圖片有兩種優(yōu)化方式 方式一:讓圖片去自動適應標簽的大小(標簽的大小是固定的,,讓圖片自動改變大小去適應標簽)
方式二:讓標簽去自動適應圖片的大小 QPixmap mymap(piclist.at(n)); //創(chuàng)建了繪圖設備 ui->label->resize(mymap.width(),mymap.height()); ui->label->setPixmap(mymap); 常用屬性 geometry --》定位坐標,,長寬大小 font --》設置字體 (2) 單行輸入框 lineEdit 作用:輸入一行字符串信息,,不能換行 常用屬性
(3) 普通按鈕 pushbutton 作用:添加一些可以點擊的按鈕 常用屬性 geometry --》定位坐標,,長寬大小 font --》設置字體 (4)文本瀏覽框 textBrowser 作用:顯示文本內(nèi)容,,只能顯示,不能編輯修改 方法:setText(你要顯示的內(nèi)容) (5)文本編輯框 textEdit 作用:可以顯示文本,,也可以編輯 方法:setText(你要顯示的內(nèi)容) QString QTextEdit::toPlainText() const //返回文本編輯框中所有的內(nèi)容 (6)lcdNumber 作用:顯示數(shù)字 方法:display() //可以顯示整數(shù),小數(shù) 屬性:digitcount --》設置最大多少位數(shù)字 QT中的樣式設計,添加資源文件 1.樣式設計 (1)什么是樣式 為了讓你的ui界面更加的美觀好看 如何彈出QT的樣式表 方法一:點擊屬性中的stylesheet 方法二:右鍵點擊組件,,選擇改變樣式表 (2)QT中常用的樣式設計語句(qss語句)
注意:QT中的路徑的寫法跟window的路徑寫法是不同 比如:window路徑是: C:\note\temp\1.c QT代碼中這個路徑改成:C:/note/temp/1.c 2.QT工程中添加資源文件 (1)什么是資源文件 只要是你從外界拿過來的文件都叫資源文件,比如:圖片,音頻文件,視頻文件 (2)如何添加資源文件到QT工程中 第一步:準備好你要添加的資源文件,,拷貝一份到你的工程目錄下(新建文件夾保存) 第二步:右鍵點擊工程名,選擇QT,,選擇QT resource file --》點擊add prefix,,點擊add file--》自動彈出對話框,你選擇之前要添加的圖片文件 最后ctrl+s保存即可 純代碼實現(xiàn)登錄界面(C++基礎要扎實) 1.為什么要掌握純代碼 第一:學習面向?qū)ο缶幊趟枷?-》查詢類和方法,學會自動思考閱讀QT中api文檔 第二:代碼實現(xiàn)的功能,,肯定比ui設計師強大 2.總結(jié)QT的api文檔規(guī)律(QT助手) 規(guī)律一:組件的類名有統(tǒng)一的命名規(guī)則 pushButton --》QPushButton label --》QLabel 規(guī)律二:頭文件跟類名一樣 #include <QPushButton> 規(guī)律三:ui設計師中所有的屬性都有對應的接口函數(shù)去設置屬性 這些函數(shù)都有統(tǒng)一的命名規(guī)則 setxxxxx() //xxxxx就是你見到的屬性的英文單詞名字 比如:屬性名 geometry --》函數(shù)名setGeometry() font --》函數(shù)名setFont() 3.具體步驟 第一步:創(chuàng)建一個標簽對象--》顯示標題 (1)構(gòu)造函數(shù) QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()) 參數(shù): text --》你要顯示在標簽上的文字信息 QString類似于C++中的string parent --》表示標簽的父窗口(標簽在哪個窗口顯示,那個窗口就是它的父窗口) (2)設置位置坐標,寬高 void QWidget::setGeometry(int x, int y, int w, int h) 參數(shù):x y --》坐標位置 w h --》寬和高 設置字體
第二步:創(chuàng)建兩個輸入框--》賬號和密碼輸入 (1)構(gòu)造函數(shù) QLineEdit(QWidget *parent = nullptr) 參數(shù):parent --》表示單行輸入框的父窗口 (2)設置默認提示字符串
(3)設置密碼隱藏 void setEchoMode(QLineEdit::EchoMode) 參數(shù):QLineEdit::Normal --》不隱藏 QLineEdit::Password--》隱藏 設置最大長度
設置樣式 void setStyleSheet(const QString &styleSheet) 參數(shù):styleSheet --》你要設置的樣式語句 QString str='輸入賬號'; setPlaceholderText(str); 第三步:創(chuàng)建兩個按鈕 (1)構(gòu)造函數(shù)
UI設計師和代碼配合型 UI純代碼實現(xiàn)界面 #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);} ');
//準備 一個標簽 QLabel *lb1=new QLabel('歡迎來到Qt歷險記',&w); //設置標簽的坐標和寬高 lb1->setGeometry(180,10,600,50); //設置字體 QFont myfont('楷體',30); lb1->setFont(myfont);
//準備兩個輸入框 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); //隱藏 //設置位數(shù) usrle->setMaxLength(8); passle->setMaxLength(8); //設置輸入框的樣式 //usrle->setStyleSheet('border-radius:10px;'); //分開寫 // usrle->setStyleSheet('border:2px solid#ff0000;');
usrle->setStyleSheet('border-radius:10px;border:2px solid#ff0000;'); //合并寫 passle->setStyleSheet('border:2px solid#ff0000;');
//定義兩個按鈕 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(); }
|
|