• 例子

    #include "widget.h"
    #include "ui_widget.h" #include <QTextBlock> Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
    {
    ui->setupUi(this);
    } Widget::~Widget()
    {
    delete ui;
    } /**
    * @brief Widget::on_btnInit_clicked
    * @note 为ComboBox设置item,并为item设置图标
    */
    void Widget::on_btnInit_clicked()
    {
    QIcon icon(":/images/images/aim.ico");//获取资源文件中的图标
    ui->comboBox_2->clear();
    for (int i = 0; i < 20; i ++) {
    ui->comboBox_2->addItem(icon,QString::asprintf("item %d",i));//添加项
    }
    } void Widget::on_btnClear_clicked()
    {
    ui->comboBox_2->clear();
    } /**
    * @brief Widget::on_pushButton_3_clicked
    * @note 设置有用户数据的内容,类似于为每一项设置一个Tag
    */
    void Widget::on_pushButton_3_clicked()
    {
    QIcon icon(":/images/images/UNIT.ICO");
    ui->comboBox->clear();
    QMap<QString,int> map;
    map.insert("北京",10);
    map.insert("上海",20);
    map.insert("天津",30);
    foreach(auto str ,map.keys()){
    ui->comboBox->addItem(icon, str, map.value(str));
    }
    } void Widget::on_checkBox_clicked(bool checked)
    {
    ui->comboBox_2->setEditable(checked);
    } void Widget::on_comboBox_2_currentIndexChanged(const QString &arg1)
    {
    if(!arg1.isEmpty())ui->plainTextEdit->appendPlainText(arg1);
    } void Widget::on_comboBox_currentIndexChanged(const QString &arg1)
    {
    if(!arg1.isEmpty())
    {
    QString data = ui->comboBox->currentData().toString();
    if(!arg1.isEmpty())ui->plainTextEdit->appendPlainText(arg1+":"+data);
    }
    } void Widget::on_checkBox_2_clicked(bool checked)
    {
    ui->plainTextEdit->setReadOnly(checked);
    } void Widget::on_pushButton_5_clicked()
    {
    ui->plainTextEdit->clear();
    } /**
    * @brief Widget::on_pushButton_4_clicked
    * @note 将文本框中的内容设置为ComboBox的选择项
    */
    void Widget::on_pushButton_4_clicked()
    {
    QIcon icon(":/images/images/aim.ico");//设置图标
    ui->comboBox_2->clear();
    QTextDocument *doc = ui->plainTextEdit->document();//获取文本框的内容对象
    int blockCount = doc->blockCount();//获取文本框中的块数量(按照回车分块)
    for (int i = 0;i < blockCount; i ++) {
    QTextBlock text = doc->findBlockByNumber(i);//获取块对象
    ui->comboBox_2->addItem(icon, text.text());//将块的文本添加为ComboBox的选择项
    }
    }
  • 界面

QT5笔记:17. QComboBox和QPlainTextEdit的更多相关文章

  1. Ext.Net学习笔记17:Ext.Net GridPanel Selection

    Ext.Net学习笔记17:Ext.Net GridPanel Selection 接下来是Ext.Net的GridPanel的另外一个功能:选择. 我们在GridPanel最开始的用法中已经见识过如 ...

  2. SQL反模式学习笔记17 全文搜索

    目标:全文搜索 使用SQL搜索关键字,同时保证快速和精确,依旧是相当地困难. SQL的一个基本原理(以及SQL所继承的关系原理)就是一列中的单个数据是原子性的. 反模式:模式匹配 使用Like 或者正 ...

  3. JAVA自学笔记17

    JAVA自学笔记17 1.Map接口 1)概述 将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值.可以存储键值对的元素 2)与Collection接口的不同: ①Map是双列的 ...

  4. golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍

    golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍 go语言爬虫框架:gocolly/colly,goquery,colly,chrom ...

  5. Linux下汇编语言学习笔记17 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  6. tornado 学习笔记17 HTTPServerRequest分析

         代表Http请求.      所有的属性都是字符串型. 17.1 属性 (1) method:请求方法类型,比如"GET"."POST" (2) ur ...

  7. 孙鑫MFC学习笔记17:进程间通信

    17 1.进程间通信4种方式 2.OpenClipboard打开剪贴板 3.EmptyClipboard清空剪贴板,并把所有权分配给打开剪贴板的窗口 4.SetClipboardData设置剪贴板数据 ...

  8. Python入门笔记(17):错误、异常

    一.什么是错误,什么是异常,它们两者区别 这里解释如下:个人觉得很通俗易懂 错误是指在执行代码过程中发生的事件,它中断或干扰代码的正常流程并创建异常对象.当错误中断流程时,该程序将尝试寻找异常处理程序 ...

  9. AMQ学习笔记 - 17. 事务的测试

    概述 对事务机制进行测试. 测试实例 测试实例 结果预测 发送正常 3条消息入队 发送异常 0条消息入队 接收正常 3条消息出队 接收异常 0条消息出队 demo设计 设计图 测试分工 测试类 测试方 ...

  10. TCP/IP协议原理与应用笔记17:IP编址(重点)

    1. IP地址(通用标识符) 对于同一个网络设备(主机或路由器)的不同网络连接,需要不同的IP地址进行标识 2. 主机标识符 主要有下面三种方式的主机标识方式: (1)Name:是什么,可读性强(了解 ...

随机推荐

  1. 下列哪个选项是对ICMP FLOOD攻击的正确描述?

    A.  通过重复发送HTTP GET请求,将内容传输的负载施加到攻击目标服务器上. B.  通过使用ping命令发送大量请求包,导致通向被攻击服务器过载并阻止访问. C.  通过发送与连接启动请求对应 ...

  2. .NET 9 增强 OpenAPI 规范

    在 .NET 9 的更新中,微软增强了原生 OpenAPI.这一变化表明 .NET 正在更加拥抱开放标准,同时让开发者体验更加轻松高效.本文将探讨为何进行这一更改.OpenAPI 的优势,以及如何在 ...

  3. 优化大宽表查询性能,揭秘GaussDB(DWS) 谓词列analyze

    本文分享自华为云社区<GaussDB(DWS) 谓词列analyze揭秘>,作者:SmithCoder. 1. 前言 适用版本:[9.1.0.100(及以上)] ​当前GaussDB(DW ...

  4. IM消息ID技术专题(七):网易严选分布式ID的技术选型、优化、落地实践

    1.引言 在<IM消息ID技术专题>系列文章的前几篇中,我们已经深切体会到消息ID在分布式IM聊天系统中的重要性以及技术实现难度,各种消息ID生成算法及实现虽然各有优势,但受制于具体的应用 ...

  5. JMeter:强大的性能测试工具

    揭秘 JMeter:性能测试的得力助手 宝子们,今天咱来唠唠在软件测试这旮旯里超厉害的 JMeter!这玩意儿就像是个超级侦探,能帮咱摸清楚软件系统在人多手杂的时候到底表现咋样. 一.JMeter 是 ...

  6. canvas实现抠图,画笔,水印等功能

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. python基础学习6和7

    模块类与对象 模块 内置模块 time, random, os, json 第三方模块 requests, pandas, numpy,.... 自定义模块 xxx.py 常见的内置模块 hashli ...

  8. 基于Hexo实现一个静态的博客网站

    原文首发:https://blog.liuzijian.com/post/8iu7g5e3r6y.html 1.初始化Hexo Hexo是中国台湾开发者Charlie在2012年创建的一个开源项目,旨 ...

  9. wireshark抓包学习

    ip 过滤 ip.src_host ip.dst_host ip.addr mac 过滤 eth.src eth.dst eth.addr 端口过滤 tcp.port tcp.srcport tcp. ...

  10. vim系列-文本操作篇

    基数行与偶数行分组 使用Vim的替换命令,可以轻松地将基数行和偶数行分组: %s/\(^.*$\)\n\(^.*$\)/\1 \2/g 然后,删除所有的基数行: %s/^.*$\n\(^.*$\)/\ ...