QT5笔记:17. QComboBox和QPlainTextEdit

例子
#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的更多相关文章
- Ext.Net学习笔记17:Ext.Net GridPanel Selection
Ext.Net学习笔记17:Ext.Net GridPanel Selection 接下来是Ext.Net的GridPanel的另外一个功能:选择. 我们在GridPanel最开始的用法中已经见识过如 ...
- SQL反模式学习笔记17 全文搜索
目标:全文搜索 使用SQL搜索关键字,同时保证快速和精确,依旧是相当地困难. SQL的一个基本原理(以及SQL所继承的关系原理)就是一列中的单个数据是原子性的. 反模式:模式匹配 使用Like 或者正 ...
- JAVA自学笔记17
JAVA自学笔记17 1.Map接口 1)概述 将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值.可以存储键值对的元素 2)与Collection接口的不同: ①Map是双列的 ...
- golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍
golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍 go语言爬虫框架:gocolly/colly,goquery,colly,chrom ...
- Linux下汇编语言学习笔记17 ---
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...
- tornado 学习笔记17 HTTPServerRequest分析
代表Http请求. 所有的属性都是字符串型. 17.1 属性 (1) method:请求方法类型,比如"GET"."POST" (2) ur ...
- 孙鑫MFC学习笔记17:进程间通信
17 1.进程间通信4种方式 2.OpenClipboard打开剪贴板 3.EmptyClipboard清空剪贴板,并把所有权分配给打开剪贴板的窗口 4.SetClipboardData设置剪贴板数据 ...
- Python入门笔记(17):错误、异常
一.什么是错误,什么是异常,它们两者区别 这里解释如下:个人觉得很通俗易懂 错误是指在执行代码过程中发生的事件,它中断或干扰代码的正常流程并创建异常对象.当错误中断流程时,该程序将尝试寻找异常处理程序 ...
- AMQ学习笔记 - 17. 事务的测试
概述 对事务机制进行测试. 测试实例 测试实例 结果预测 发送正常 3条消息入队 发送异常 0条消息入队 接收正常 3条消息出队 接收异常 0条消息出队 demo设计 设计图 测试分工 测试类 测试方 ...
- TCP/IP协议原理与应用笔记17:IP编址(重点)
1. IP地址(通用标识符) 对于同一个网络设备(主机或路由器)的不同网络连接,需要不同的IP地址进行标识 2. 主机标识符 主要有下面三种方式的主机标识方式: (1)Name:是什么,可读性强(了解 ...
随机推荐
- elementui多选框部分禁用
直接上代码 <el-table-column type="selection" :selectable="selectable" align=" ...
- Ant Design Pro项目ProTable怎么实现单元格合并效果
前情 公司有经常需要做一些后台管理页面,我们选择了Ant Design Pro,它是基于 Ant Design 和 umi 的封装的一整套企业级中后台前端/设计解决方案. 产品效果图 最新接到的一个后 ...
- 解读GaussDB的BTree索引和UBTree索引,如何带来更强并发能力
本文分享自华为云社区<[GaussTech技术专栏]GaussDB的BTree索引和UBTree索引>,作者:GaussDB 数据库. 1. 简介 数据库通常使用索引来提高业务查询的速度. ...
- 一图归纳三大种类矩阵范数:诱导范数,元素范数,Schatten范数,涵盖谱范数,2范数
转载自:https://blog.csdn.net/qq_27261889/article/details/87902480
- 切换Docker本地目录
背景: df -h,发现docker默认的路径在/var/lib下,而且容量即将满掉. 对于欧拉系统来说,目录在/home,需要把docker目前的目录切换到/home下. 解决方法: 1. Dock ...
- Xcode Swift自动格式化
Xcode Swift自动格式化 安装SwiftFormat SwiftFormat 是一款用来格式化Swift代码的命令行工具. 直接用Homebrew安装 brew install swiftfo ...
- Nuget Reference 丢失问题
现象 在 Visual Studio 2017 中创建一个控制台项目.创建出来的项目如下所示. 通过 NuGet 管理器,添加 Newtonsoft.Json 的 NuGet 包,安装之后,项目中添加 ...
- 关于Qt程序中动态和静态的几点总结
在Qt程序中,分动态库版本的Qt和静态库版本的Qt. 官方默认提供的二进制包就是动态库版本的Qt,如果自行编译则编译的时候对应参数 -shared. 静态库版本的Qt需要自行编译,编译的时候对应参数 ...
- _findnext()调试中断,发生访问错误,错误定位到ntdll.dll
问题: 采用_findfirst和_findnext获取指定的文件夹下的文件时,_findnext()函数在调试时发生中断,发生访问错误,错误定位到ntdll.dll.错误提示如下所示: _findn ...
- Java GUI控件SwingX之JXTaskPane的使用示例
JXTaskPane 类似XP 左边的导航栏,在开发Swing应用的时候很好用的.下面两张截图反应了JXTaskPane的动画效果.可以自由的卷起和展开. JXTaskPane的的使用步骤:1.新 ...