1. 程式人生 > >QT5.3.2小白之路——UI介面設計以及正則表示式的說明

QT5.3.2小白之路——UI介面設計以及正則表示式的說明

本文主要探討對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)

相關推薦

QT5.3.2——UI介面設計以及表示式的說明

本文主要探討對UI介面設計過程中遇到的問題和解決辦法,同時也引出了很多的專業概念,供大家一起學習。 1、UI介面的繪製 1、新建QT Widget Application ,專案名稱為“Test”,基類選擇“QDialog”,類名保持“Dialog”不變,保持“建立介面”

135.Python修煉【140-前端-JQuery-表示式】2018.08.04

正則表示式 1、什麼是正則表示式:  能讓計算機讀懂的字串匹配規則。 2、正則表示式的寫法: var re=new RegExp('規則', '可選引數'); var re=/規則/引數; 3、規則中的字元  1)普通字元匹配: 如:/a/ 匹配字元 ‘a’,/a,b

javascript表單校驗以及表示式

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/java

python(基礎知識一)

邏輯運算 () 字母 日常 utf-8 orm 之路 命名 修改 一、開篇輸出:print("Hello World!") 二、中文自由行:#coding=utf-8 或 # -- coding:UTF-8 -- 三、Linux多行:#!/u

python(控制語句二)

結束 語句 for break 多個 判斷 嵌套 循環語句 遍歷 1、判斷語句:往往用來對是否滿足條件進行判斷。if、if...else...、if...elif...else...、if嵌套。 2、循環語句while:一般通過數值是否滿足循環條件。for:一般是對能保存多

python(特性語法三字符串)

大寫 () strip rfi isalnum 插入 join upper 出現 1、字符串:雙引號或單引號中的數據輸出:print() 輸入:input()切片:[起始下標:結束下標:步長] PS:選取區間屬於左閉右開型。【1:5:1】 【5:1:-1】常見操作:f

python(特性語法三元組、字典)

get 內置 del 獲取 lse 大括號 默認值 get方法 () 一、元組介紹Python的元組和列表類似,不同之在於元組的元素不能修改,元組使用小括號,列表使用方括號。訪問元組:元組【下標】元組的內置函數count、index,同列表用法一樣。元組.index(‘a‘

python(特性語法三列表)

object 存在 根據 指定 zha 下標 end mov set 列表一、列表的格式:變量為studentlist = [‘zhangsan’,‘male‘,29],元素可以是不同數據類型的。二、打印列表:打印學生姓名print(studentlist[0])三、列表的

python(特性語法三遍歷、公共方法、引用)

是否 比較 類型 之路 鍵值 oat 列表 函數 dict 一、遍歷通過for。。。in。。。的語法結構,我們可以遍歷字符串、列表、元組、字典等數據結構。1、字符串遍歷a_str = "hello world"for char in a_str:prin

一,我的2016,我的編程(寫於2016最後一天)

模擬 gre 我只 數據 願望 匯編 關於 計算機網絡 思考 明天元旦,2016年結束了,我已結束高考,然而高數考試馬上就來了。 qwq ---------- 過去一年,全是為了高考,感覺那時也沒想多少事,專心把題目做出就好了。於是該總結的總結,該做題的做題,做不完的題當然

軟體測試《一》

一、什麼是測試(測試定義)      軟體測試(英語:Software Testing),描述一種用來促進鑑定軟體的正確性、完整性、安全性和質量的過程。換句話說,軟體測試是一種實際輸出與預期輸出之間的稽核或者比較過程。軟體測試的經典定義是:在規定

python (跳動的球)

otto all fps pygame type mage ott splay init # -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. """ import pyg

如何搭建自己的Git倉庫(

1、首先開啟GitHub官網,建立一個賬號,參考https://blog.csdn.net/javaandroid730/article/details/53522872裡“GitHub的簡單使用”的第一步;2、然後在新建SSH KEY,操作步驟詳見:https://blog

Jacoco+Jenkines

hot dex utf cover code java epo public {} Jacoco+Jenkines小白之路 最近工作中正在推廣jacoco的增量覆蓋率的統計,想學習一波,純粹采坑中,適合小白學習jacoco。調研了一下市面上使用的增量覆蓋率的工具,發現大多數

avue的

老板 bpa init 之路 ack top 下載 阿裏 .com 經過幾天的看實例,我稍稍了解到了avue,寫這個博客主要是最近學習avue的一個總結。。   avue是基於vue與element ui的一個框架,強烈建議等了解這其中道理在學習avue會事半功倍;這是我

Python3基礎(三十 五)表示式

一、正則表示式 正則表示式(Regular Expression)又稱 RegEx, 是用來匹配字元的一種工具. 在一大串字元中尋找你需要的內容. 它常被用在很多方面, 比如網頁爬蟲, 文稿整理,資料篩選等等. 最簡單的一個例子, 比如我需要爬取網頁中每一頁的標題. 而網頁中的標題常

linux學習筆記shell程式設計(一)表示式與字元處理

shell程式設計 基礎正則表示式 正則和萬用字元的區別:正則是包含匹配,匹配檔案內容,grep,awk等支援正則表示式。萬用字元是完全匹配,匹配檔名,例如find,ls不認識正則表示式 ####正則表示式常用的字元(注意區別於萬用字元裡面的符號)#### -*

JAVA基礎常用的類以及表示式,打基礎這些決不能少!

說到正則表示式,可能很多人想到的就是驗證之類的,沒錯,正則表示式作為一個驗證的方法或者說規則,只要是需要輸入和驗證的網站和app,沒有不需要使用正則表示式的,由此可以看出正則表示式的重要性。作為一個合格的程式設計師,正則表示式和執行緒、io流等是必須要知道的東西。 一、Math (1)

Linux學習十一egrep及擴充套件表示式(egrep)

一、egrep及擴充套件正則表示式:     REGEXP:REGular EXPression          1、正則表示式:         Basic REGEXP:基本正則表示式         Extended REGEXP:擴充套件正則表示式     2、擴

.NETCore C# 中級篇2-4 一文帶你完全弄懂表示式

.NETCoreCSharp 中級篇2-4 本節內容為正則表示式的使用 簡介 有的時候,你是否有過這種需求:判斷一個Ip地址、郵箱、密碼規則是否合法。如果讓你使用if一類的傳統方法進行處理,你肯定會被逼瘋的。而對於絕大多數的程式語言而言,都有一個字串處理利器————正則表示式。它可以輕鬆的讓字串和規則匹配