您当前的位置: 首页 >  qt

lw只吃亿点.

暂无认证

  • 10浏览

    0关注

    47博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Qt之QCompleter的简单使用(自动补全、文本框提示、下拉框提示含源码+注释)

lw只吃亿点. 发布时间:2022-10-01 00:10:57 ,浏览量:10

文章目录
  • 一、补全功能示例图
    • 1.匹配包含
    • 2.匹配开头
    • 3.匹配结尾
  • 二、源码
    • 1.CCompleterTest.h
    • 2.CCompleterTest.cpp
    • 3.CCompleterTest.ui
      • 自定义动态属性值
  • 总结

一、补全功能示例图 1.匹配包含

下图演示了匹配文本包含的情况。 在这里插入图片描述

2.匹配开头

下图演示了匹配开头模式,可以看到匹配开头时,输入”王“只显示了”王五“,但当匹配包含时却显示了两个项。 在这里插入图片描述

3.匹配结尾

从下图可以看到匹配包含时,输入”张“显示了”张三“和”小张“,但当匹配结尾时却显示了”小张“,以此演示了匹配结尾的功能。 在这里插入图片描述

二、源码

【提示】因为在ui中使用了自定义动态属性,所以在此保留ui源码

1.CCompleterTest.h
#ifndef CCOMPLETERTEST_H
#define CCOMPLETERTEST_H

#include 
#include  // 导入自动补全类头文件
#include  // 导入dir数据模型

namespace Ui {
class CCompleterTest;
}

class CCompleterTest : public QMainWindow
{
    Q_OBJECT

public:
    explicit CCompleterTest(QWidget *parent = nullptr);
    ~CCompleterTest();

    /**
     * @brief initChineseCompleter 中文名下拉框的补全类初始化
     */
    void initChineseCompleter();

    /**
     * @brief initEnglishCompleter 英文名文本框的补全类初始化
     */
    void initEnglishCompleter();

    /**
     * @brief initDirCompleter 目录文本框的补全类初始化
     */
    void initDirCompleter();

private slots:
    /**
     * @brief on_filterModeComboBox_currentIndexChanged 过滤模式下拉框切换按钮槽函数
     * @param arg1 切换后的文本
     */
    void on_filterModeComboBox_currentIndexChanged(const QString &arg1);

private:
    Ui::CCompleterTest *ui;

    QCompleter *m_chineseCompleter;     // 下拉列表框的自动补全类

    QCompleter *m_englishCompleter;     // 文本编辑框的自动补全类

    QCompleter *m_dirCompleter;         // 文本编辑框的自动补全类

    QDirModel  *m_dirModel;             // dir数据模型
};

#endif // CCOMPLETERTEST_H

2.CCompleterTest.cpp
#include "CCompleterTest.h"
#include "ui_CCompleterTest.h"

CCompleterTest::CCompleterTest(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::CCompleterTest)
{
    ui->setupUi(this);
    // 设置窗口标题
    this->setWindowTitle("自动补全类的使用");

    // 初始化中文名下拉框补全
    initChineseCompleter();

    // 初始化英文名文本框补全
    initEnglishCompleter();

    // 初始化目录文本框补全
    initDirCompleter();
}

CCompleterTest::~CCompleterTest()
{
    delete m_chineseCompleter;
    delete m_englishCompleter;
    delete m_dirModel;
    delete m_dirCompleter;
    delete ui;
}

void CCompleterTest::initChineseCompleter()
{
    // 创建下拉列表框的补全文本列表
    QStringList list;
    list 
  
   
    0
    0
    396
    266
   
  
  
   CCompleterTest
  
  
   
    
     
      
       补全类匹配模式:
      
     
    
    
     
      
       
        0
        0
       
      
      
       1
      
      
       2
      
      
       3
      
      
       
        匹配包含
       
      
      
       
        匹配开头
       
      
      
       
        匹配结尾
       
      
     
    
    
     
      
       自动补全(中文)的下拉框:
      
     
    
    
     
      
       
        0
        0
       
      
     
    
    
     
      
       自动补全(英文)的文本框:
      
     
    
    
     
      
       
        0
        0
       
      
     
    
    
     
      
       自动补全(目录)的文本框:
      
     
    
    
     
      
       
        0
        0
       
      
     
    
   
  
  
   
    
     0
     0
     396
     23
    
   
  
  
   
    TopToolBarArea
   
   
    false
   
  
  
 
 
 
 


自定义动态属性值

在这里插入图片描述

总结

补全类在生活中输入文本还是比较常见,并且使用上没有特别的要求,直接调用设置即可,很是方便。

(前段时间电脑出问题了,因为疫情不能修理这些问题,后面还是会持续更新的)

友情提示——哪里看不懂可私哦,让我们一起互相进步吧 (创作不易,请留下一个免费的赞叭 谢谢 ^o^/)

注:文章为作者编程过程中所遇到的问题和总结,内容仅供参考,若有错误欢迎指出。 注:如有侵权,请联系作者删除

关注
打赏
1654352885
查看更多评论
立即登录/注册

微信扫码登录

0.0726s