QT学习记——第一个程序(控件认识、函数触发)

首先下载好QT,之后使用QT Creator进行学习。
我此前学习过其他的类似的多端界面开发,Windows、Web、Android都有写过,所以重新学一个QT应该不会很难(大概。

安装的时候东西尽可能多安装一些,可以对照教程进行安装,个人觉得这份教程还不错,按照他的进度进行学习。

主界面
主界面提供了很多DEMO,而且很多看起来还挺高级。。。
默认
选择QT桌面程序进行开发。参数全部给默认即可。
FDemo
我新建了一个FDemo的项目文件,这是生成后的默认界面。可以看到这是一个类的文件,默认有一个构造函数和析构函数。看起来这就是窗口创建和消亡时候会调用的代码了。
项目结构
项目结构有四类文件

  1. 工程配置文件
  2. 头文件
  3. 源文件
  4. UI文件
  • 配置文件
    这个暂时不动
  • 头文件
    可以自己编写类文件,一般与源文件对应
    这里有一个main.cpp就是入口文件
    入口文件
    这个代码就是执行了FDemo的show方法,因为FDemo类是一个继承了窗体对象类的类。所以自带很多操作。
  • UI文件
    这里我们看一下UI文件,双击fdemo.ui,进入设计界面。
    设计界面
    十分熟悉的设计界面,我先前学习的设计器基本上也都是长这样,所见即所得感觉非常不错。左边是控件区,可以有很多布局和控件进行选择,不过一般套娃层次不会很多,毕竟不用弄分辨率hhh,Android的布局我就学了很久(要考试不是 。有几个很常用的控件首先需要认识:
  1. 标签 Lable
    用来显示一段话,最常用的一个东西hhh
  2. 按钮 PushButton
    点击按钮然后触发一个函数云云
  3. 编辑框 Line Text
    用户可以在编辑框中输入内容,然后程序获取这个内容进行处理
  4. 选择框 Checkbox
    又被称为复选框,有两种状态,True / Falsle,十分好用

其他常用的还有很多,比如Timer、Tab以及各种布局方式,对于第一个Demo来说用不到这么多就是了。

首先来简单做几件事情

  1. 展示一段文本
  2. 触发一个函数
  3. 对用户的输入进行相应
  4. 以上三种操作复合

按住拖动
选择Label控件拖到主窗口,完成创建。
双击
双击标签可修改文本。
编译
编译运行看效果。
至此我们已经学会了如何展示一段文本hhh
项目
在属性窗口也能够修改,值得注意的是属性窗口是具有继承关系的,这部分我们稍后再议,用字母排序找到Text即可。
Too
我们用同样的办法创建一个按钮,然后我们需要给他添加一个事件。
右键按钮
右键按钮可以看到一些控件操作,我们选择【转到槽】,可以先简单得认为这个就是选择事件触发。
事件
可以看到有很多事件可供选择,最常用是第一个单机事件 ,后面的按键按下弹起以及各种被修改事件暂时不讨论
OK

单机确定自动跳转到Code区域,IDE已经给我们写好了一个函数,我们只需要在这个函数里填充所需要的操作即可。
line2
我们引入一个头文件,并调用一个函数,这是QT的信息框类,可以用来提示信息。

#include "QMessageBox"
QMessageBox::information(this,"title","hello, QT");

然后我们编译运行工程。
MESSAGE
点击按钮,弹出了一个信息框,触发了我们的函数 ,在这里我们可以写各种天马行空的内容
下一部分我们需要进行对用户的输入做出响应。
Line Text
回到UI界面,放入一个编辑框,我们把刚刚的按钮事件修改为获取控件内容的函数。

首先这里需要明确一个概念,每个控件都有一个名字,他有很多含义并且可以自定义,但开始只要知道是用来区分控件的即可,通过控件名可以直接操作对应的控件。这就使得我们可以在程序运行的过程中修改控件属性。
Name
两者是对应的,我们通过这个名字进行方法调用。
Reps
首先我们获取到了lineEdit的Text,然后作为弹窗的文本传入。
需要注意的是,lineEdit是ui下的一个对象,这个箭头打起来麻烦,不过IDE会自动把点转换成箭头。

void FDemo::on_pushButton_clicked()
{
    auto x = ui->lineEdit->text();
    QMessageBox::information(this,"title",x);
}

综合上面三个操作,我们不难写出一个简单的程序。
Demo
这是一个用户登录程序,用户必须输入正确的账号和密码才允许使用,这里使用伪造数据(账号admin,密码123456)登陆,后续可以读文件或者链接服务器。
Mode
密码框用密码模式输入。
Error
Ok
参考代码

void FDemo::on_pushButton_clicked()
{
    auto userName = ui->lineEdit->text();
    auto passWord = ui->lineEdit_2->text();
    if(userName == "admin" && passWord == "123456"){
        QMessageBox::information(this,"tips","登陆成功");
        // 这里可以触发其他的成功事件,比如窗口跳转等
    }
    else{
        QMessageBox::warning(this,"error","账号或密码错误");
        // 这里可以触发其他的失败事件,比如窗口销毁等
    }

}

Code
至此,我们完成了我们的第一个Demo。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值