• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Qt中的QlineEdit

    標簽: Qt學習  c++

    概述:
    QLineEdit 類代表編程框,它可以讓用戶輸入一個單行文本。類似于登錄窗口中的賬號和密碼的輸入框(行編輯)
    1,構造函數:

    QLineEdit (QWidget *parent = 0); 
    QLineEdit(const QString &contents, QWidget *parent = 0);
    

    其中 contents 表示編輯框中顯示的內容。
    2,屬性
    (1)alignment 屬性表示顯示文本的對齊方式,相關成員函數如下:

    int maxLength() const; // 獲取最大輸入長度 
    void setMaxLength(Qt::Alignment flag) const; // 設置對齊方式 
    void setMaxLength(int len); // 設置最大輸入長度
    

    它的含義與 QLabel 類的 alignment 屬性相同。
    maxLength 屬性表示編輯框可以容許的最大輸入長度,
    (2)readOnly 屬性表示編輯框的內容是否為只讀的,即內容是否可以被用戶修改,相關成員函數如下:

    bool isReadOnly() const; // 判斷是否為只讀的 
    void setReadOnly(bool on); // 設置是否為只讀的 
    

    (3)text 屬性表示編輯框的內容,相關的成員函數如下:

    QString text() const; // 獲取編輯框的內容 
    void setText(const QString &text); // 設置編輯框的內容,這是一個槽 
    

    其中 setText 函數同時也是一個槽。要注意編輯框的內容不一定就是編輯框顯示的內容,比如一個密碼輸入編輯框,用戶輸入的密碼是不顯示出來的。如果要顯示編輯框的內容,則需使用下面的成員函數:

    QString displayText() const; // 得到顯示的內容
    

    (4)frame 屬性控制編輯框有沒有邊框,相關成員函數如下:

    bool hasFrame() const; // 判斷有沒有邊框 
    void setFrame(bool on); // 設置有沒有邊框 
    

    (5)邊距

    void setTextMargins(int left, int top, int right,int bottom); // 設置邊距 
    void getTextMargins(int *left, int *top, int *right, int *botton); // 獲取邊距 
    

    這兩個函數分別用于設置和獲取文本顯示的邊距,上、下、左、右 4 個邊距可以獨立進行設置。
    (6)取消選中任何已選中的文本

    void deselect()
    

    3,信號
    (1)當編輯框的內容發生變化時,將發射以下信號:

    void textChanged(const QString &text);
    

    其中參數 text 是發生變化后的內容。
    (2)當編輯框的內容被編輯時,將發射以下信號:

    void textEdited(const QString &text);
    

    其中參數 text 是編輯后的內容。它與 textChanged 信號的主要區別在于,它只是在用戶進行修改的時候發射,在程序中用 setText 修改時則不發射,而后者則在兩種情況下都會發射。
    (3)void selectionChanged()
    只要選擇改變這個信號就會被發射。

    (4)void cursorPositionChanged(int old, int new)
    只要光標移動,這個信號就會發射。前面的位置old,新的位置是new。

    (5)void editingFinished()

    (3)當在編輯框中按下回車鍵時,將發射以下信號:

    void returnPressed();
    

    這個信號將在按下回車鍵或者編輯框失去焦點時發射。
    4,自帶槽函數
    調用下面的槽可以清空編輯框中的內容:

    void clear();
    

    5,設置顯示模式
    QlineEdit除了上所述的屬性外,還有其他屬性比如顯示模式
    使用 QLineEdit 類的 setEchoMode () 函數設置文本的顯示模式,函數聲明:

    void setEchoMode(EchoMode mode)
    

    EchoMode 是一個枚舉類型,一共定義了四種顯示模式:
    1>QLineEdit::Normal 模式顯示方式,按照輸入的內容顯示。
    2>QLineEdit::NoEcho 不顯示任何內容,此模式下無法看到用戶的輸入。
    3>QLineEdit::Password 密碼模式,輸入的字符會根據平臺轉換為特殊字符。
    4>QLineEdit::PasswordEchoOnEdit 編輯時顯示字符否則顯示字符作為密碼。
    代碼簡單舉例應用
    一個簡單的登錄窗口(支持回車),和一個簡單搜索引擎

    /*簡單的登錄窗口*/
        edit2 = new QLineEdit(this);
        edit2->setMaxLength(12);//設置行編輯最大長度
        edit2->setText("");
        edit2->setFrame(true);//設置邊框
        edit2->setStyleSheet("color:red");//設置樣式表, 文本顏色為紅色
        edit2->setPlaceholderText("請輸入賬號");
        edit2->setEchoMode(QLineEdit::Password);
        edit2->move(10,100);
    
        edit1 = new QLineEdit("行編輯內容",this);
        edit1->setMaxLength(12);//設置行編輯最大長度
        edit1->setText("");
        edit1->setFrame(true);//設置邊框
        edit1->setStyleSheet("color:red");//設置樣式表, 文本顏色為紅色
        edit1->setPlaceholderText("請輸入密碼");
        edit1->setEchoMode(QLineEdit::Password);
        edit1->move(10,150);
        /*捕捉回車信號*/
        connect(edit1,&QLineEdit::returnPressed,this,[=](){
    
            //此處可以判斷密碼和賬戶是否正確進行下一步操作
        });
    
    
        edit3 = new QLineEdit(this);
        edit3->setPlaceholderText("請輸入搜索內容");//設置提示內容
        action = new QAction(edit3);//定義動作指定父對象
        action->setIcon(QIcon(":/new/prefix1/sunny.png"));//給動作添加圖標
    
        edit3->addAction(action, QLineEdit::TrailingPosition);//添加動作到行編輯,并且放在行編輯的尾部,也可以添加行首
        /*定義動作槽函數*/
        connect(action,&QAction::triggered,this,[=]()//連接動作信號,點擊后打印
        {
           QString ret = edit3->text();
           qDebug() << QString("輸入內容為:%1").arg(ret);
        });
    

    執行結果為
    在這里插入圖片描述
    注意:添加動作的時候一定要在new出對象之后,注意添加所需頭文件

    版權聲明:本文為qq_45652092原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/qq_45652092/article/details/111309463

    智能推薦

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    猜你喜歡

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    styled-components —— React 中的 CSS 最佳實踐

    https://zhuanlan.zhihu.com/p/29344146 Styled-components 是目前 React 樣式方案中最受關注的一種,它既具備了 css-in-js 的模塊化與參數化優點,又完全使用CSS的書寫習慣,不會引起額外的學習成本。本文是 styled-components 作者之一 Max Stoiber 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...

    基于TCP/IP的網絡聊天室用Java來實現

    基于TCP/IP的網絡聊天室實現 開發工具:eclipse 開發環境:jdk1.8 發送端 接收端 工具類 運行截圖...

    19.vue中封裝echarts組件

    19.vue中封裝echarts組件 1.效果圖 2.echarts組件 3.使用組件 按照組件格式整理好數據格式 傳入組件 home.vue 4.接口返回數據格式...

    劍指Offer39-調整數組順序使奇數位于偶數前面

    一開始想著用冒泡排序的方法來做,但是bug還是很多,后來看了評論區答案,發現直接空間換時間是最簡單的,而且和快排的寫法是類似的。...

    精品国产乱码久久久久久蜜桃不卡