原部落格地址:http://blog.csdn.net/liang19890820/article/details/52044639,感謝原作者總結和分享。
簡述
QLineEdit是一個單行文本輸入框。
QLineEdit允許使用者輸入和編輯單行純文字,提供了很多有用的編輯功能,包括:撤消和重做、剪下和粘貼、以及拖放(見setDragEnabled())。
通過改變輸入框的echoMode(),同時也可以設定為一個“唯寫”欄位,用於輸入密碼等。
文本的長度可以被限制為maxLength(),可以使用一個validator()或inputMask()來任意限制文本。當在同一個輸入框中切換驗證器和輸入遮罩的時候,最好是清除驗證器或輸入遮罩,防止不確定的行為。
簡述 內容 詳細介紹 共有類型 常用介面 訊號 共有槽 樣本 QLineEditEchoMode效果 效果 源碼 自訂搜尋方塊 效果 源碼 驗證器 效果 源碼 輸入遮罩 效果 源碼 更多參考
內容 詳細介紹
與其相關的一個類是QTextEdit - 允許多行、富文本編輯。
可以使用setText()或insert()來改變文本,通過text()來擷取文本;顯示的文本(可能不同,詳見:EchoMode)通過displayText()來擷取。文本可以使用setSelection()或selectAll()來選中,選中的文本可以被cut()、copy()和paste(),使用setAlignment()來設定文本的對齊。
當文本改變時,會發射textChanged()訊號。當使用setText()改變文本時,textEdited()訊號也會發射。游標位置發生變化時,會發射cursorPositionChanged()訊號,當Return或Enter鍵被按下時,發射returnPressed()訊號。
當編輯完成,或者是因為輸入框失去焦點,或Return/Enter鍵被按下時,發出的editingFinished()訊號。
注意:如果輸入框有一個驗證器,returnPressed()/editingFinished()訊號只有在驗證期返回QValidator::Acceptable的時候才會被發射。
預設情況下,QLineEdit具有由平颱風格指南規定的邊框,可以通過setFrame(false)將其關閉。
預設鍵被綁定描述如下。輸入框還提供了一些編輯選項的操作功能表(通常通過單擊滑鼠右鍵調用)。
按鍵 |
動作 |
Left Arrow |
游標左移一個字元 |
Shift+Left Arrow |
游標左移並選擇一個字元 |
Right Arrow |
游標右移一個字元 |
Shift+Right Arrow |
游標右移並選擇一個字元 |
Home |
將游標移動到行的開頭 |
End |
將游標移動到行的末尾 |
Backspace |
刪除游標左側字元 |
Ctrl+Backspace |
刪除游標左側的單詞 |
Delete |
刪除游標右側字元 |
Ctrl+Delete |
刪除游標右側的單詞 |
Ctrl+A |
全選 |
Ctrl+C |
複製選中的文本複製到剪貼簿 |
Ctrl+Insert |
複製選中的文本複製到剪貼簿 |
Ctrl+K |
刪除此處至末尾所有內容 |
Ctrl+V |
粘貼剪貼簿的文本到輸入框中 |
Shift+Insert |
粘貼剪貼簿的文本到輸入框中 |
Ctrl+X |
剪下選中的文本到剪貼簿 |
Shift+Delete |
剪下選中的文本到剪貼簿 |
Ctrl+Z |
撤銷上一次操作 |
Ctrl+Y |
重做上一次操作 |
共有類型
枚舉:QLineEdit::ActionPosition
描述如何顯示加入到輸入框中的action組件。
常量 |
值 |
描述 |
QLineEdit::LeadingPosition |
0 |
當使用布局方向Qt::LeftToRight時,組件顯示在文本左側;使用Qt::RightToLeft時,則顯示在右側。 |
QLineEdit::TrailingPosition |
1 |
當使用布局方向Qt::LeftToRight時,組件顯示在文本右側;使用Qt::RightToLeft時,則顯示在左側。 |
枚舉:QLineEdit::EchoMode
描述輸入框如何顯示其內容。
常量 |
值 |
描述 |
QLineEdit::Normal |
0 |
正常顯示輸入的字元,預設選項。 |
QLineEdit::NoEcho |
1 |
不顯示任何輸入,常用於密碼類型,其密碼長度都需要保密的時候。 |
QLineEdit::Password |
2 |
顯示平台相關的密碼掩碼字元,而不是實際的字元輸入。 |
QLineEdit::PasswordEchoOnEdit |
3 |
在編輯的時候顯示字元,負責顯示密碼類型。 |
常用介面
這裡列舉了一些常用介面,但並非全部的,要獲得更多資訊請參考助手。
QString text() const
返回輸入框的當前文本。
void addAction(QAction * action, ActionPosition position)
QAction * addAction(const QIcon & icon, ActionPosition position)
添加action至指定位置。
Qt::Alignment alignment() const
void setAlignment(Qt::Alignment flag)
alignment : Qt::Alignment
屬性儲存了輸入框的對齊(水平和垂直方向)。Qt::AlignJustify映射到Qt::AlignLeft。
預設情況下,該屬性包含Qt::AlignLeft和Qt::AlignVCenter。
QCompleter* completer() const
void setCompleter(QCompleter * c)
QCompleter後面詳細講解。
void deselect()
取消選中任何已選中的文本。
QString displayText() const
返回顯示的文本。預設值為一個Null 字元串。
如果echoMode是Normal,和text()返回的一樣;如果EchoMode是Password或PasswordEchoOnEdit,會返回平台相關的密碼掩碼字元,長度為text().length(),例如:"******";如果EchoMode是NoEcho,返回一個Null 字元串""。
QString selectedText() const
返回選中的的文本。如果沒有選中,返回一個Null 字元串。預設為一個Null 字元串。
int cursorPosition() const
void setCursorPosition(int)
cursorPosition : int
屬性包含輸入框當前游標的位置。設定游標位置時,會導致應有的重繪。預設情況下,屬性值為0。
EchoMode echoMode() const
void setEchoMode(EchoMode)
echoMode : EchoMode
屬性儲存了輸入框的顯示模式。顯示模式決定了輸入框對使用者的文本顯示。預設值為Normal
最常用的設定是Normal,使用者輸入文本被逐字顯示;還包含其它模糊輸入,例如:NoEcho、Password和PasswordEchoOnEdit。
組件的顯示、複製或拖動文本的行為受此設定的影響。
int maxLength() const
void setMaxLength(int)
maxLength : int
此屬性包含文本的最大允許長度。如果文本太長,將從限制的位置截斷。預設值為32767。
如果發生截斷任何選中的文本將取消選中,游標位置設定為0,並且顯示字串的第一部分。
如果輸入框有一個輸入遮罩,那麼,掩碼定義字串的最大長度。
QString placeholderText() const
void setPlaceholderText(const QString &)
placeholderText : QString
當輸入框為空白時,輸入框顯示一個灰色的預留位置文字。預設值為一個Null 字元串。
通常,一個空的輸入框顯示預留位置文字,即使它有焦點。然而,如果內容水平置中,當輸入框有焦點時,預留位置文字不顯示在游標下。
bool isReadOnly() const
void setReadOnly(bool)
readOnly : bool
此屬性儲存輸入框是否為唯讀。
在唯讀模式下,使用者仍然可以將文本複製到剪貼簿,或拖放文本(如果echoMode()是Normal),但不能編輯它。
唯讀模式下,QLineEdit也不顯示光線標。
void setSelection(int start, int length)
從位置start選擇文本為length個字元,允許負長度。
void setValidator(const QValidator * v)
設定輸入框的驗證器,將限制任意可能輸入的文本。如果v == 0,將會清除當前的輸入驗證器
如果v = = 0,setValidator()刪除當前的輸入驗證器。初始設定是沒有輸入驗證器(即:接受任何輸入到maxLength())。
const QValidator * validator() const
返回一個當前輸入的驗證器指標,如果沒有設定驗證器,返回0。
QString inputMask() const
void setInputMask(const QString & inputMask)
inputMask : QString
此屬性儲存驗證器的輸入遮罩。如果沒設定研發,inputMask() 或返回一個Null 字元串。傳遞一個Null 字元串可以取消驗碼並返回一個正常QLineEdit。
下表列出了可在一個輸入遮罩中使用的字元。空白字元,是一個空白的預設字元,當一個字元是允許的,但不是必須的請胯下。
字元 |
含義 |
A |
ASCII字母字元是必須的,A-Z、a-z。 |
a |
ASCII字母字元是允許的,但不是必須的。 |
N |
ASCII字母字元是必須的,A-Z、a-z、0-9。 |
n |
ASCII字母字元是允許的,但不是必須的。 |
X |
任何字元都是必須要的。 |
x |
任何字元都是允許的,但不是必須要的。 |
9 |
ASCII數字是必須要的,0-9。 |
0 |
ASCII數字是允許的,但不是必須要的。 |
D |
ASCII數字是必須要的,1-9。 |
d |
ASCII數字是允許的,但不是必須要的 (1-9)。 |
# |
ASCII數字或加/減符號是允許的,但不是必須要的。 |
H |
十六進位資料字元是必須要的,A-F、a-f、0-9。 |
h |
十六進位資料字元是允許的,但不是必須要的。 |
B |
位元據字元是必須要的,0-1。 |
b |
位元據字元是允許的,但不是必須要的。 |