QT5.3.2小白之路——UI界面设计以及正则表达式的说明

本文详细介绍了使用QT5.3.2进行UI界面设计的步骤,包括新建项目、添加控件、设置布局,并分享了在设计过程中的小技巧。此外,还探讨了正则表达式的功能,如验证、搜索、替换和分割字符串,并在QT项目中展示了其应用。在实际操作中,作者遇到了编译问题,提供了相应的解决方案。

本文主要探讨对UI界面设计过程中遇到的问题和解决办法,同时也引出了很多的专业概念,供大家一起学习。

1、UI界面的绘制

1、新建QT Widget Application ,项目名称为“Test”,基类选择“QDialog”,类名保持“Dialog”不变,保持“创建界面”复选框的选中状态。

2、双击dialog.ui文件,打开QT的设计器,中间的空白窗口是一个parent Widget,接着需要建立一些Child Widget。在左边的工具箱中找到所需要的Widget:拖曳出一个Label,一个Line Edit 、一个Horizontal Spacer及两个Push Button。

3、设置widget的属性:具体名称就不一一叙述了,看个人喜好。

4、运行工程,如下图所示:

          简要说明以下在布置布局的过程中的小技巧:

         1、buddy关系;假如设定label的Text为&t,那么程序运行后,按住Alt+t就相当于单击lineEdit,可以通过热键快速定位到需要输入的文本框处,能够减少查找的事件,并能一定程度避免鼠标失灵的尴尬;具体操作:选择编辑,点击编辑伙伴命令即可;

        2、Horizontal Spacer以及同类型的间隔控件;在设定UI界面的布局时,这些小的部件能够给绘制UI界面提供很多的便利,主要是看起来更美观一些;

        3、QT的Layout Manage 能够对各个小部件的位置进行适合的调整,按住ctrl键,勾选多个widget,再点击合适的对齐的方式,我们就可以完成一个简单的布局操作;

        4、同时,我们可以利用工具栏中的调整大小按钮、Tab键顺序按钮来对widget进行调整,以满足我们正常的需求;

        2、UI初始化以及槽函数与信号的连接

        1、在头文件中,我们首先定义如下几个变量:

private:
    Ui::Dialog *ui;
private slots:
    void on_lineEdit_textChanged(QString);//槽函数的声明
    void on_okButton_clicked();
    void on_cancelButton_clicked();

       2、第二步就是在Dialog.cpp对构造函数进行实例化; 

    ui->setupUi(this);//在构造函数中使用该句进行初始化操作
    QRegExp regExp("[A-Za-Z] [1-9] [0-9] {0,2}");//正则表达式限制输入字元的范围;
    ui->lineEdit->setValidator(new QRegExpValidator(regExp,this));
    connect(ui->okButton,SIGNAL(clicked()),this,SLOT(accept()));
    connect(ui->cancelButton,SIGNAL(clicked()),this,SLOT(reject()));

          在上述代码中,我们引入正则表达式的概念

正则表达式(Regular Expression,通常简写为RegExp、RE等),预先定义一些字符或字符的组合,用于匹配文本中的一段字符串。下面是它的一些用途——

1.验证

判断字符串是否符合某个标准,比如“是一个整数”或者“没有空格”。

2.搜索

正则表达式提供了比普通字符串匹配更为强大的匹配方式,比如匹配下面的词语:mail, letter, correspondence,但是不包括email, mailman, letterbox等等。

3.查找并替换

正则表达式能够用一个不同的字符串,替换所有出现另一个字符串的地方,比如用&替换&,如果原先&后面已经有了amp;那么不替换。

4.分割字符串

比如,根据tab来分割字符串。

              下面就是对槽函数的说明:

void Dialog::on_lineEdit_textChanged(QString)
{
    ui->okButton->setEnabled(ui->lineEdit->hasAcceptableInput());
}

 

              运行结果如下:

 

             遇到的问题:在编译的过程中,我遇到了两个问题。

            第一个:Qt creater出现“启动程序失败,路径或者权限错误?

            解决办法:查看项目中构建步骤是否规范,qmake、make,没有的构建步骤直接添加。

            第二个:QT在编译的过程中会出现缺少 collect文件

            解决办法:一般情况下是因为程序已经在后台运行了,无法重新构建,需要将工程暂停。

            附录:

例子

解释

[abc]

方括号中间是几个字母,表示a,b,c这三个单独的字符

[^abc]

除了a,b,c以外的字符

[a-z]

横杠表示范围,匹配a到z之间(包括a和z)的所有单个字符

[a-zA-Z]

a到z、A到Z的所有单个字符

^

在一行最前

$

在一行的最后

\s

匹配任意空白字符

\S

匹配任意非空白的字符

\d

任意数字

\D

任意非数字

\w

任意单字字符(字母、数字或下划线)

\W

任意非单字字符

(a|b)

a或b

a?

?代表0个或1个

a*

*代表0个或1个或多个

a+

+代表1个或多个

a{3}

3个a

a{3,}

3个或大于3个a

a{3,6}

a的个数在3和6之间(包括3和6)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值