QT基础

qt基础
αt的移植性非常的强。一套代码我们不用改太多,直接通用所有的平台。
不久的将来,qt会被用到MCU上,学习QT还是非常有意义的
 
 
 
QT += core gui     //往QT工程里面加入  core gui  模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets     //假如QT库版本大于4,就加入一个  widgets 模块
TARGET = class1    //生成 app
TEMPLATE = app   //编译产生的类型
DEFINES += QT_DEPRECATED_WARNINGS    //定义一个宏
 
 
SOURCES += \      //指定工程里面有哪些cpp
        main.cpp \
        widget.cpp
 
 
HEADERS += \         指定工程里面都有哪些头文件
widget.h
 
 
FORMS += \            指定工程里面都有哪些ui文件         
widget.ui 
 
 
 
做一个简单的QQ登录界面
我们用到组件
放图片,放文本,放gf图的组件就是 glabel.
放账号和密码的对话框我们用的组件是qlinedit.
按钮我们使用的组件是 pushbutton.
 
 
 
1、给控件改名字
      为了分析代码方便,我们要给控件改名字。要通俗易懂。
 
2什么是信号和槽
信号:信号就是指控件发出的特定的信号。
比如按钮的信号:
 
Signals
void clicked (bool checked= false)
void pressed
void released
void toggled(bool checked
 
槽:槽就是槽函数的意思,我们可以把槽函数绑定在某一个控件的信号上
3怎么关联信号和槽
<1>自动关联
      手动选择相应的控件,然后右键->转到槽。
       自动关联会给我们的工程添加以下内容:
 
      曹函数只能声明到 private slote 或者 public slots 下面
 
 
<2>手动关联
 
手动关联使用 connect这个函数
connect(ui->logo Bt, SIGNAL(clicked), this, SLOT (logoBt clicked slots)
connect(A, SIGNAL(B), C, SLOT(D);
当对象A发出B信号时候,就会触发对象C的槽函数D
 
 
 
 
 
 
qt下的布局
1、水平布局:
2、垂直布局:
3、栅格布局:
 
 
 
一、qt的三驾马车:
 
1、qt下的串口编程:
2、qt下的网络编程:
3、qt下操作GPIO:
 
 
 
 
二、仿写串口助手
  步骤一:做好UI界面
  步骤二:实现逻辑功能
 
 
 
 
打包和部署:(我们打包成.exe 在windous 上直接能使用的应用程序)
问题一:什么是打包和部署?
           因为我们要把写好的程序发给用户来用,我们写好的源码也不是随便给别人的。
问题二:怎么打包和部署?
           1.我们把工厂切换到release模式,然后编译。
           release模式:基本没有调试信息。
           debug模式:有很多调试信息。
          2.找到release模式构建的文件夹。
           3.改一下图标。先把图标加到工程所在文件夹。然后在pro文件里面添加
           RC_ICONS=serial_iocn.ico
             注意:图标的格式必须为.ico这个格式的,其他格式不行。
           4.封包操作,需要用到QT的控制台,如下图:
          
        我们需要电脑桌面上创建一个新的文件夹,注意千万不要有中文路径。
      
        命令:
           cd  /d   新的文件夹的路径(如 c://....)
        
            我们使用windeployqt工具把库加到我们新创建的这个文件夹里面。
              格式:windeployqt exe文件的名称           
 
 
 
QT   TCP:
   QT的网络编程
   网络编程有TCP和∪DP.
  TCP编程需要用到俩个类: QTcpServer和 QTcpSocket
 
 
控件记录:
 
input widgets:
接收框: Plain Text edit(控件)
发送框: Line Edit
 
Button:
按钮:pushButton
 
Display Widgets:
文字显示:label
 
 
Containers (容器)
   Group Box
 
 
posted @ 2020-09-30 22:16  数字青年  阅读(84)  评论(0编辑  收藏  举报