Qt小程式(五)-簡單Ui介面操作
阿新 • • 發佈:2019-01-02
目錄
前言
剛剛學習瞭如何使用ui介面檔案建立對話方塊,用到了一些常用的操作,包括訊號與槽等,這樣的東西都是套路化的,只有記錄一遍,以後只要按操作執行就不會出現問題了應該,所以特此記錄下先!
ui介面操作
- 建立一個Label
- 建立一個LineEdit
- 建立兩個Push Button
直接拖動Widget Box
中的控制元件即可,但是這時候是沒有佈局的。我給Label
設定的文字資訊為&Cell Location
,給兩個PushButton
設定的objectName
分別為okButton
和closeButton
- 設定
Buddies
需要給label
和lineEdit
設定繫結(至少我是這麼理解的,詞彙可能不專業),在選單欄選擇編輯,選擇Edit Buddies。然後在label
和lineEdit
之間連線即表示Buddies
。
設定Buddies
,如下圖:
注意,這時候是處於Edit Buddies
狀態,如果需要回到原來的狀態,需要在選單欄的編輯中選擇Edit Widgets
。 - 設定
Horizontal Spacer
如果預設對label
和lineEdit
使用水平佈局,對兩個PushButton
使用水平佈局,然後對整體使用垂直佈局,如下圖:
所以,為了保證美觀,我們可以使用Horizontal Spacer
- 給
okButton
和closeButton
新增訊號與槽
在選單欄選擇編輯,選擇Edit Signals/Slots。然後對兩個Push Button
分別設定訊號與槽。
注意:要回到編輯狀態,要使用在選單欄的編輯中選擇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
。
對話方塊程式碼
- dialog.h
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
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());
}
建立效果
總結
學習!分享!感謝!