华清实训第九天 QT项目

第九天

内容:QT学习

今天自写代码
Qt Creator的代码补全功能:
Qt Creator拥有强大的代码补全功能,比如输入一个关键字时,只要输入前几个字母,就会弹出相关的关键字选择列表;输入完一个对象,然后输入点以后,就会弹出该对象所有可用的变量和函数。这里要说的是,当输入一个比较长得函数或变量名时,可以通过其中的几个字母来定位。比如说,要输入前面讲到的setFocus()函数,
那么只需输入首字母s和后面的大写字母F即可,这样可以大大缩减提示列表,如果还没有定位到,那么可以输入F后面的字母o,定位到需要的函数后,直接按下回车键即可完成输入。如下图所示。
       还可以使用ctrl + 空格键来强制代码补全,不过这个一般会和我们的输入法的快捷键冲突,大家可以更改输入法的快捷键,也可以在Qt Creator中的工具→选项→环境→键盘中来设置快捷键。
自写项目
一、使用设计模式创建界面
1.新建Qt Widgets Application,项目名称为login
(1)
1.1
1.2
1.3
这里,项目文件可自行命名(文件名字即创建类的名称)
之后一直点下一步直到完成即可,一个简单的项目便创建完毕
左侧栏会出现相应文件(如下图)
2.完成项目创建后,向项目中添加新的Qt设计师界面类,
模板选择Dialogwithout Buttons类名更改为Dlog
后面就默认即可。
完成后向界面上添加两个标签Label、两个行编辑器Line Edit和两个按钮Push Button,设计界面如下图所示。
左上角是搜索框,可以搜索你所需要的前端条件。按要求搜索添加内容即可有如下结果:
3.先选中用户名后面的行编辑器部件,然后在属性编辑器中将其objectName属性更改为usrLineEdit,如下图所示。下面依次更改其他部件的objectName属性,密码后面的行编辑器为pwdLineEdit,登录按钮为loginBtn,退出按钮为exitBtn
4.下面使用另外一种信号和槽的关联方法来设置退出按钮。在设计模式下方的信号和槽编辑器(Signals & Slots Editor)中,先点击左上角的绿色加号添加关联,然后选择发送者为exitBtn,信号为clicked(),接收者为Dlog(类名),槽为close()。如下图所示。这样,当单击退出按钮时,就会关闭登录对话框。
5.右击登录按钮,在弹出的菜单中选择“转到槽”,然后选择clicked()信号并确定。转到相应的槽以后,添加函数调用:
void Dlog::on_loginBtn_clicked()       //登录按钮槽函数设置
{
          accept(); //跳转函数 登录成功后跳转至新界面
}
6.下面到main.cpp文件,更改内容如下:
 
#include "Qmainwindow.h"
#include "dlog.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    Dlog dlg;
    if (dlg.exec() == QDialog::Accepted)
    {
       w.show();
       return a.exec();
    }
    else return 0;        
}
关于qt中main函数中的exec()作用
7.这时运行程序,按下退出按钮会退出程序,按下登录按钮会关闭登录对话框,并显示主窗口。
二、登录设置
1.下面添加代码来实现使用用户名和密码登录,这里只是简单将用户名和密码设置为了固定的字符串,如果以后学习了数据库,还可以通过读取数据库来获取用户名和密码。到dlog.cpp文件中将登录按钮的单击信号对应的槽的代码更改为:
void Dlog::on_loginBtn_clicked()
{
    // 判断用户名和密码是否正确,
       // 如果错误则弹出警告对话框
    if(ui->usrLineEdit->text().trimmed() == tr("hqyj")
                && ui->pwdLineEdit->text() == tr("123456"))
       {
          accept();                 //跳转函数 登录成功后跳转至新界面
    } else {
       QMessageBox::warning(this, tr("警告!"),
                   tr("用户名或密码错误!"),
                   QMessageBox::Yes);
    }
}
       Qt中的QMessageBox类提供了多种常用的对话框类型,比如这里的警告对话框,还有提示对话框、问题对话框等。这里使用了静态函数来设置了一个警告对话框,这种方式很便捷,其中的参数依次是:this表明父窗口是登录对话框、窗口标题、界面显示的内容和最后要显示的按钮,这里使用了一个Yes按钮。注意还要添加该类的头文件包含,即:#include "qmessagebox.h" 
2.下面运行程序,如果输入用户名为“hqyj”,密码为“123456,那么可以登录,如果输入其他的字符,则会弹出警告对话框,如下图所示。
3.对于输入的密码,我们常见的是显示成小黑点的样式。下面点击logindialog.ui文件进入设计模式,然后选中界面上的密码行编辑器,在属性编辑器中将echoMode属性选择为Password。这时再次运行程序,可以看到密码显示已经改变了。如下图所示。
       当然,除了在属性编辑器中进行更改,也可以在dlog类的构造函数中使用setEchoMode(QLineEdit::Password)函数来设置。
4.在行编辑器的属性栏中还可以设置占位符,就是没有输入信息前的一些提示语句。例如将密码行编辑器的placeholderText属性更改为“请输入密码”,将用户名行编辑器的更改为“请输入账号”,运行效果如下图所示。
5.对于行编辑器,还有一个问题就是,比如我们输入用户名,在前面添加了一个空格,这样也可以保证输入是正确的,这个可以使用QString类的trimmed()函数来实现,它可以去除字符串前后的空白字符。下面将dlog.cpp文件中登录按钮单击信号槽函数中的判断代码更改为:
 
if(ui->usrLineEdit->text().trimmed() == tr("hqyj")                                //账户密码判断
            && ui->pwdLineEdit->text() == tr("123456"))
      
 这时运行程序,已经实现相应的功能了。
6.最后,当登录失败后,我们希望可以清空用户名和密码信息,并将光标定位到用户名输入框中。这个可以通过在判断用户名和密码错误后添加相应的代码来实现:
else {
QMessageBox::warning(this, tr("警告!"),
                     tr("用户名或密码错误!"),
                     QMessageBox::Yes);
// 清空内容并定位光标
ui->usrLineEdit->clear();
ui->pwdLineEdit->clear();
ui->usrLineEdit->setFocus();
}
       下面运行程序,大家可以测试一下效果。
整体代码:
 文件dlog.cpp
#include "dlog.h"
#include "ui_dlog.h"
#include<QMessageBox>


Dlog::Dlog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dlog)
{
    ui->setupUi(this);
}
Dlog::~Dlog()
{
    delete ui;
}
void Dlog::on_loginBtn_clicked()
{
    // 判断用户名和密码是否正确,
       // 如果错误则弹出警告对话框
    if(ui->usrLineEdit->text().trimmed() == tr("hqyj")
                && ui->pwdLineEdit->text() == tr("123456"))
       {
          accept(); //跳转函数 登录成功后跳转至新界面
       } else {
        QMessageBox::warning(this, tr("警告!"),
                             tr("用户名或密码错误!"),
                             QMessageBox::Yes);
        // 清空内容并定位光标
        ui->usrLineEdit->clear();
        ui->pwdLineEdit->clear();
        ui->usrLineEdit->setFocus();
        }
}
文件main.cpp
#include "logy.h"
#include <QApplication>
#include "qmainwindow.h"
#include "dlog.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    logy w;                   //原类
    Dlog dlg;                 //新类
    if (dlg.exec() == QDialog::Accepted)
       {
          w.show();
          return a.exec();
       }
       else return 0;
}
开发板
1、板子连接电脑时,需要在电脑上选择将其连接虚拟机上
             远程登录板子指令  : sudo ssh 192.168.7.1
              密码为 1 
退出root模式指令  exit
2、板子有静态ip    192.168.7.1
3、板子会给虚拟机分配一个 192.168.7 网段的 ip
相关技术参考文档:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值