Qt小程序(五)-简单Ui界面操作

目录

  • 目录
  • 前言
  • ui界面操作
  • 对话框代码
  • 创建效果
  • 总结

前言

刚刚学习了如何使用ui界面文件创建对话框,用到了一些常用的操作,包括信号与槽等,这样的东西都是套路化的,只有记录一遍,以后只要按操作执行就不会出现问题了应该,所以特此记录下先!

ui界面操作

  • 创建一个Label
  • 创建一个LineEdit
  • 创建两个Push Button
    Qt小程序(五)-简单Ui界面操作_第1张图片
    直接拖动Widget Box中的控件即可,但是这时候是没有布局的。我给Label设置的文本信息为&Cell Location,给两个PushButton设置的objectName分别为okButtoncloseButton
  • 设置Buddies
    需要给labellineEdit设置绑定(至少我是这么理解的,词汇可能不专业),在菜单栏选择编辑,选择Edit Buddies。然后在labellineEdit之间连线即表示Buddies
    Qt小程序(五)-简单Ui界面操作_第2张图片
    设置Buddies,如下图:
    Qt小程序(五)-简单Ui界面操作_第3张图片
    注意,这时候是处于Edit Buddies状态,如果需要回到原来的状态,需要在菜单栏编辑中选择Edit Widgets
  • 设置Horizontal Spacer
    如果默认对labellineEdit使用水平布局,对两个PushButton使用水平布局,然后对整体使用垂直布局,如下图:
    Qt小程序(五)-简单Ui界面操作_第4张图片
    所以,为了保证美观,我们可以使用Horizontal Spacer,使用效果如下:
    Qt小程序(五)-简单Ui界面操作_第5张图片
  • okButtoncloseButton添加信号与槽
    菜单栏选择编辑,选择Edit Signals/Slots。然后对两个Push Button分别设置信号与槽
    Qt小程序(五)-简单Ui界面操作_第6张图片
    注意:要回到编辑状态,要使用在菜单栏编辑中选择Edit Widgets
  • 设置lineEdit在有输入的时候,OK按钮才会有效,在右侧的属性中设置enabled勾选去除。同时我们可以在代码中设置正则表达式来限制输入,同时在输入的时候设置槽函数来启动OK按钮。
    这里使用 on_lineEdit_textChanged函数作为lineEdit输入的槽函数
    槽函数代码如下:
void Dialog::on_lineEdit_textChanged()
{
    ui->okButton->setEnabled(ui->lineEdit->hasAcceptableInput());
}
  • lineEdit设置信号与槽
    菜单栏选择编辑,选择Edit Signals/Slots,在弹出界面lineEdit中选择textChanged,然后在Dialog选择编辑,然后添加我们自己写的槽函数on_lineEdit_textChanged
    Qt小程序(五)-简单Ui界面操作_第7张图片

对话框代码

  • dialog.h
#ifndef DIALOG_H
#define DIALOG_H

#include 

namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();
private slots:
    void on_lineEdit_textChanged();

private:
    Ui::Dialog *ui;
};

#endif // DIALOG_H
  • dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);

    QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}");
    // this represent parent object; if parent object delete, all the child object will be delete
    ui->lineEdit->setValidator(new QRegExpValidator(regExp, this));
}

Dialog::~Dialog()
{
    delete ui;
}

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

创建效果

Qt小程序(五)-简单Ui界面操作_第8张图片

总结

学习!分享!感谢!

你可能感兴趣的:(qt)