寫在前面
通過一個個由淺入深的編程實戰案例學習,提高編程技巧,以保證小伙伴們能應付公司的各種開發需求。
文章中設計到的源碼,小凡都上傳到了gitee代碼倉庫https://gitee.com/xiezhr/pb-project-example.git
需要源代碼的小伙伴們可以自行下載查看,后續文章涉及到的案例代碼也都會提交到這個倉庫【pb-project-example】
如果對小伙伴有所幫助,希望能給一個小星星?支持一下小凡。
一、小目標
本小節使用了StaticText
控件、SingleLineEdit
控件、CommandButton
控件、Messagebox
函數
這小節的目的主要是學會SingleLineEdit
控件的使用,其他控件及函數在第一小節已經設計,這里就不再重復了
最終實現如下截圖效果
二、創建程序基本框架
① 創建work
工作區
② 建立app
應用
③ 建立w_main
窗口
以上步驟如果忘記怎么操作的小伙伴,可以看看第一篇文章。這里由于篇幅原因,就不再贅述
④ 窗口中布置控件
窗口中添加兩個StaticText
控件、兩個SingleLineEdit
控件和兩個CommandButton
控件。
如下圖所示,各個控件名稱為st_1
、sle_1
、st_2
、sle_2
、cb_1
和cb_2
⑤ 設置控件屬性
控件名稱 | 屬性值 | 值 |
---|---|---|
w_main | title | 密碼驗證 |
st_1 | Text | 請輸入用戶名: |
st_2 | Text | 請輸入密 碼: |
sle_1 | Text | 空 |
sle_2 | Text 、Password | 空 |true |
cb_1 | Text 、Default | 確定|true |
cb_2 | Text 、Cancel | 取消|true |
⑥ 保存窗口
三、編寫事件代碼
這里我們模擬系統密碼為123456,實際密碼需要去數據庫查詢獲取
① 在按鈕cb_1
的Clicked
事件中添加如下代碼
sle_1.Text
代碼可以獲取控件中文本內容
if sle_1.Text= '' thenmessagebox('提示信息','請輸入用戶名!')
elseif sle_2.text = '123456' thenmessagebox('歡迎使用', sle_1.Text+'你好!')elsemessagebox('提示信息','密碼錯誤,請重新輸入!')end ifend if
② 在按鈕cb_2
的Clicked
事件中添加如下代碼進行關閉窗口
close(parent)
③ 在左邊System Tree
窗口中雙擊App應用對象,在open
事件中添加如下代碼
//程序啟動打開窗口w_main
open(w_main)
四、運行程序
五、SingleLineEdit 控件
5.1 常用屬性
屬性名稱 | 描述 |
---|---|
Visible | 默認為 True。當為 False 時,該控件在窗口上隱藏 |
Enabled | 默認為 True。當為 False 時,該控件不能獲得焦點,用戶不能進行編輯和選 中;控件背景為灰色 |
DisplayOnly | 默認為 False。當為 True 時,該控件中的文字不能被修改,并且也不能 輸入,但可以選中、復制 |
Password | 默認為 False。當為 True 時,在該輸入框中輸入的內容顯示為“ *”號, 星號的數目等于輸入的字符的數目,加密規則依賴于操作系統。其實際內容和用戶輸入的內 容一致 |
AutoHScroll | 默認為 True,表示當用戶輸入的內容顯示不下時,可以自動橫向滾動 光標,但是不顯示滾動條 |
HideSelection | 默認為 True,表示只有當單行編輯器獲得焦點時,才高亮顯示選中文 本。建議使用默認值,因為將該屬性設置為 False,沒有獲得焦點時,選中的內容就高亮顯示, 這容易讓用戶造成錯誤 |
Limit | 默認是 0,表示沒有長度限制。可以輸入其他一個數字,表示該單行編輯框中 最多接受用戶輸入的字符個數,最大數字是 32 767 |
Case | 有三個選項, upper 表示用戶輸入的內容中的字母都自動轉換成大寫, down 表示都自動轉換成小寫, any 表示不做轉換 |
Text | 這是該控件運行時最經常使用的一個屬性。可以給該屬性賦值來將特定信息顯 示在單行編輯器中,也可以讀取該屬性而獲得單行編輯器中的內容。設計狀態下,在 Text 屬性輸入框中錄入的文字在窗口剛剛打開時顯示在單行編輯框中 |
Border | 是否顯示邊框,默認為 True |
5.2 事件和腳本
提供了 12 個事件, Modified 是經常使用的事件,其他事件和命令按鈕的同名事件完全相同。
該事件的觸發時機是在編輯器中輸入內容后,焦點離開該編輯器時
單行編輯器提供了很多的函數,其中需要掌握的有 10 個經常使用的函數,這 10 個常用
5.2.1 CanUndo 函數
① 語法
sle_1.CanUndo ()
返回值:Boolean
- 如果可以撤銷上一次的編輯操作,則返回True
- 如果不能撤銷上一次的編輯操作,則返回False
② 功能
檢查是否可以撤銷上一次的編輯操作
5.2.2 Undo 函數
① 語法
sle_1.Undo()
② 功能
撤銷上一次的編輯操作,恢復到之前的文本狀態
5.2.3 Clear 函數
① 語法
sle_1.Clear ()
返回值:Integer
- 清除的文本內容長度,清除一個字符,則返回1
- 未選中內容,返回0
- 執行錯誤返回-1
② 功能
清除SingleLineEdit
控件中選中的文本內容
注: 需要在文本內容選中的情況下才能清除
5.2.4 Copy 函數
① 語法
sle_1.Copy()
返回值:Integer
- 復制到剪切板的文本內容長度
- 未選中內容,返回0
- 執行錯誤返回-1
② 功能
將SingleLineEdit
控件中選定的文本復制到剪貼板。
5.2.5 Cut函數
① 語法
sle_1.Cut()
② 功能
將SingleLineEdit
控件中選定的文本剪切并復制到剪貼板。
返回值:Integer
- 剪切到剪切板的文本內容長度
- 未選中內容,返回0
- 執行錯誤返回-1
5.2.6 Paste函數
① 語法
sle_1.Paste()
返回值:Integer
- 剪切板的文本內容長度
② 功能
將剪貼板中的內容粘貼到SingleLineEdit
控件中
5.2.7 SetFocus函數
① 語法
sle_1.SetFocus()
② 功能
將焦點設置到SingleLineEdit
控件上
本期內容到這兒就結束了,希望對您有所幫助。
我們下期再見 ヾ(?ω?`)o (●’?’●)