QT第六天 布满荆棘的人生 2022-04-12 07:21 346阅读 0赞 # QComboBox和QPlainTextEdit的用法 # # QComboBox的使用 # ## 设计时属性设置 ## 在界面上放置QComboBox组件后,双击组件,弹出列表项编辑器对话框 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RoZVJvb2tpZTE_size_16_color_FFFFFF_t_70] 可以在对话框中添加列表项,设置项的图标。 ## 用代码添加简单项 ## 包含addItem与addItems区分 void Widget::on_pushButton_clicked()//初始化列表按钮 { QIcon icon; icon.addFile(":/images/icons/aim.ico");//通过路径获得图标 ui->comboBox->clear();//首先需要清除列表 for(int i=0;i<20;i++) { ui->comboBox->addItem(icon,QString::asprintf("Item %d",i));//含图标的初始化 //addItem用于添加一个列表项 //addItems用于添加多个列表项 } } void Widget::on_pushButton_3_clicked()//添加多项按钮 //这里就使用了addItems() { QIcon icon; icon.addFile(":/images/icons/UNIT.ICO"); ui->comboBox->clear(); QStringList strList; strList<<"北京"<<"上海"<<"天津"<<"河北"<<"山东"<<"山西"; ui->comboBox->addItems(strList);//addItems无法添加图标 } ## 添加具有用户数据的项 ## void Widget::on_pushButton_4_clicked()//初始化城市+区号按钮 { QMap<QString,int> City_Zone; City_Zone.insert("北京",10); City_Zone.insert("上海",21); City_Zone.insert("天津",22); City_Zone.insert("大连",411); City_Zone.insert("锦州",416); City_Zone.insert("徐州",516); City_Zone.insert("福州",591); City_Zone.insert("青岛",532); ui->comboBox_2->clear(); foreach(const QString &str ,City_Zone.keys()) { ui->comboBox_2->addItem(str,City_Zone.value(str)); } } ## QComboBox列表项的访问 ## void Widget::on_comboBox_2_currentIndexChanged(const QString &arg1)//改变comboBox_2中的选项时触发 { QString zone=ui->comboBox_2->currentData().toString();//项关联的数据 ui->plainTextEdit->appendPlainText(arg1+":"+zone); } void Widget::on_comboBox_currentIndexChanged(const QString &arg1)//改变comboBox中的选项时触发 { ui->plainTextEdit->appendPlainText(arg1); } # QPlainTextEdit # ## 逐行读取文字内容 ## void Widget::on_pushButton_5_clicked()//文本框内容添加到ComboBox按钮 { QTextDocument *doc=ui->plainTextEdit->document();//文本对象 //QTextDocument是内存中的文本对象,以文本块的方式存储,一个文本块就是一个段落,每个段落以回车符结束 //提供的函数 //int blockCount()获取文本块个数 //QtextBlock findBlockByNumber(int blockNumber)读取某个文本块,序号从0开始至blockCount()-1 //一个document有多个TextBlock //从一个document中读取的一个文本块类型为QTextBlock,通过QTextBlock::text()可以获取纯文字文本 int cnt=doc->blockCount();//计算文本块个数 QIcon icon; icon.addFile(":/images/icons/aim.ico"); for(int i=0;i<cnt;i++) { QTextBlock textLine=doc->findBlockByNumber(i);//文本中的一段 //需要添加头文件#include<QTextBlock> QString str=textLine.text();//从TextBlock类型转换为QString类型 ui->comboBox->addItem(icon,str);//添加到comboBox中 } } ## 使用QPlainTextEdit自带的快捷菜单 ## void Widget::on_plainTextEdit_customContextMenuRequested(const QPoint &pos)//实现右键快捷菜单 { QMenu *menu=ui->plainTextEdit->createStandardContextMenu();//需要添加头文件#include<QMenu> menu->exec(pos);//在鼠标点击的位置出现 } # 其他功能的实现代码 # void Widget::on_pushButton_2_clicked()//清除列表按钮 { ui->comboBox->clear(); } void Widget::on_checkBox_clicked(bool checked)//可编辑选项 { if(checked) { ui->comboBox->setEditable(true); } else ui->comboBox->setEditable(false); } void Widget::on_checkBox_2_clicked(bool checked)//read only选项 { ui->plainTextEdit->setReadOnly(checked); } void Widget::on_pushButton_6_clicked()//清空文本按钮 { ui->plainTextEdit->clear(); } # 运行结果 # ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RoZVJvb2tpZTE_size_16_color_FFFFFF_t_70 1] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RoZVJvb2tpZTE_size_16_color_FFFFFF_t_70 2] [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RoZVJvb2tpZTE_size_16_color_FFFFFF_t_70]: /images/20220412/9e36cca9ab2a4c6c84d3db0b5b408d03.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RoZVJvb2tpZTE_size_16_color_FFFFFF_t_70 1]: /images/20220412/175daab918e74a249ddc4fdbfe456beb.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RoZVJvb2tpZTE_size_16_color_FFFFFF_t_70 2]: /images/20220412/bb7fd33727ff43968b3f16a3a5f5d5ef.png
相关 QT第三天 字符串与输入输出 字符串与数值之间的转换 void Widget::on_btnCal_clicked() { QString st 谁践踏了优雅/ 2022年04月13日 13:23/ 0 赞/ 348 阅读
相关 QT第三天 1.QPerson类的定义 ifndef QPERSON_H define QPERSON_H include<QObject>//加入<QObj 小咪咪/ 2022年04月13日 07:43/ 0 赞/ 321 阅读
相关 Qt第七天 QListWidget和QToolButton的用法 界面设计 1.混合式界面设计 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5 ╰+攻爆jí腚メ/ 2022年04月12日 10:50/ 0 赞/ 319 阅读
相关 QT第六天 QComboBox和QPlainTextEdit的用法 QComboBox的使用 设计时属性设置 在界面上放置QComboBox组件后,双击组件,弹出列表项编 布满荆棘的人生/ 2022年04月12日 07:21/ 0 赞/ 347 阅读
相关 QT第十天 QFileSystemModel 使用QFileSystemModel作为数据模型,QTreeView,QListView和QTableView为主要组件 在Tree Bertha 。/ 2022年04月11日 11:42/ 0 赞/ 329 阅读
相关 Qt第八天 QTreeWidget和QDockWidget用法 本例子以QTreeWidget为主要组件,创建一个照片管理器 头文件 ifndef MAINWINDO 旧城等待,/ 2022年04月11日 02:15/ 0 赞/ 342 阅读
相关 Qt第十六天 QPainter基本绘图 只有最基本的画图 widget.h ifndef WIDGET_H define WIDGET_H 待我称王封你为后i/ 2022年04月08日 13:24/ 0 赞/ 251 阅读
相关 Qt第十六天’ 坐标变换 坐标平移 坐标旋转 坐标缩放 状态的保存和恢复 widget.h ifndef WIDGET_H define WIDGET 快来打我*/ 2022年04月04日 03:07/ 0 赞/ 296 阅读
相关 QT第二十六天 使用Qt制作的串口工具 工程文件加入一下代码 QT +=serialport ifndef WIDGET_H define WI 旧城等待,/ 2022年04月01日 09:51/ 0 赞/ 288 阅读
相关 第六天 今日所得 元组及内置方法 字典及内置方法 集合及内置方法 字符编码 元组(有序) 作用:和列表类似可存储多个值,但是元组本身不能改变,一旦生成元 ゞ 浴缸里的玫瑰/ 2021年11月11日 10:56/ 0 赞/ 419 阅读
还没有评论,来说两句吧...