QT学习目的,岗位需求 上位机:用户使用的那个小平板(带有界面,应用程序) 下位机:底层硬件传感器,底层的硬件电路板 1.学习目的 QT可以帮助我们开发上位机程序 QT使用C++写代码 2.岗位需求 QT开发工程师 --》二年左右的经验 1.5----3w之间 QT的 应用领域,发展历史 1.QT的特点 跨平台:市面上主流的操作系统都能支持 window linux 苹果 安卓 QT下载安装,不同版本QT介绍 1.QT下载链接 https://download./archive/qt/ 2.不同版本的QT安装程序 .exe --》window版本的QT .dmg --》苹果电脑 .run --》linux系统 新建QT工程 1.集成开发环境介绍 QT creator --》集成开发环境(见图示) 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 //指定环境变量 第二个:头文件--》类的定义 class MainWindow : public QMainWindow { Q_OBJECT //宏定义,暂时不理会 public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: Ui::MainWindow *ui; }; 第三个:主函数--》
QT的学习方法 1.QT中的内容非常多 组件的属性有很多:掌握主要的属性设置,其他的属性遇到了上网查询 UI设计师界面的使用--》傻瓜式操作(所见即所得) 1.作用 组件(控件):按钮 滑动条 进度条...... 提供了大量的组件帮助我们设计ui界面 2.跳转到ui设计师 双击工程中ui文件,自动跳转 组件如何使用:鼠标左键直接拖动即可 复制组件:ctrl按住不松开,鼠标拖动组件即可复制 3.常用的组件 注意:任何一个组件,你需要查看修改它的属性,都要先用鼠标选中该组件,再去查看修改属性 (1)标签label 作用一:用来显示文字 作用二:用来显示图片 void setPixmap(const QPixmap &) 参数::QPixmap(constQString &fileName) fileName --》你要显示的图片路径名 标签显示图片有两种优化方式 方式一:让图片去自动适应标签的大小(标签的大小是固定的,让图片自动改变大小去适应标签)
方式二:让标签去自动适应图片的大小 QPixmap mymap(piclist.at(n)); //创建了绘图设备 ui->label->resize(mymap.width(),mymap.height()); ui->label->setPixmap(mymap); 常用属性 geometry --》定位坐标,长宽大小 font --》设置字体 (2) 单行输入框 lineEdit 作用:输入一行字符串信息,不能换行 常用属性
(3) 普通按钮 pushbutton 作用:添加一些可以点击的按钮 常用属性 geometry --》定位坐标,长宽大小 font --》设置字体 (4)文本浏览框 textBrowser 作用:显示文本内容,只能显示,不能编辑修改 方法:setText(你要显示的内容) (5)文本编辑框 textEdit 作用:可以显示文本,也可以编辑 方法:setText(你要显示的内容) QString QTextEdit::toPlainText() const //返回文本编辑框中所有的内容 (6)lcdNumber 作用:显示数字 方法:display() //可以显示整数,小数 属性:digitcount --》设置最大多少位数字 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保存即可 纯代码实现登录界面(C++基础要扎实) 1.为什么要掌握纯代码 第一:学习面向对象编程思想--》查询类和方法,学会自动思考阅读QT中api文档 第二:代码实现的功能,肯定比ui设计师强大 2.总结QT的api文档规律(QT助手) 规律一:组件的类名有统一的命名规则 pushButton --》QPushButton label --》QLabel 规律二:头文件跟类名一样 #include <QPushButton> 规律三:ui设计师中所有的属性都有对应的接口函数去设置属性 这些函数都有统一的命名规则 setxxxxx() //xxxxx就是你见到的属性的英文单词名字 比如:属性名 geometry --》函数名setGeometry() font --》函数名setFont() 3.具体步骤 第一步:创建一个标签对象--》显示标题 (1)构造函数 QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()) 参数: text --》你要显示在标签上的文字信息 QString类似于C++中的string parent --》表示标签的父窗口(标签在哪个窗口显示,那个窗口就是它的父窗口) (2)设置位置坐标,宽高 void QWidget::setGeometry(int x, int y, int w, int h) 参数:x y --》坐标位置 w h --》宽和高 设置字体
第二步:创建两个输入框--》账号和密码输入 (1)构造函数 QLineEdit(QWidget *parent = nullptr) 参数:parent --》表示单行输入框的父窗口 (2)设置默认提示字符串
(3)设置密码隐藏 void setEchoMode(QLineEdit::EchoMode) 参数:QLineEdit::Normal --》不隐藏 QLineEdit::Password--》隐藏 设置最大长度
设置样式 void setStyleSheet(const QString &styleSheet) 参数:styleSheet --》你要设置的样式语句 QString str='输入账号'; setPlaceholderText(str); 第三步:创建两个按钮 (1)构造函数
UI设计师和代码配合型 UI纯代码实现界面 #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); //隐藏 //设置位数 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(); }
|
|