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一類的傳統方法進行處理,你肯定會被逼瘋的。而對於絕大多數的程式語言而言,都有一個字串處理利器————正則表示式。它可以輕鬆的讓字串和規則匹配