原部落格地址: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 |  
    位元據字元是允許的,但不是必須要的。 |