热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Qt中QComboBox和QPlainTextEdit

QComboBox是下拉列表框组件类,QPlainTextEdit是一个多行文本编辑器。添加具有用户数据的项QComboBox::addltem()函数的两种参数的原

QComboBox是下拉列表框组件类,QPlainTextEdit是一个多行文本编辑器。

  添加具有用户数据的项 QComboBox::addltem() 函数的两种参数的原型定义如下:

    void addItem (const QString &text, const QVariant &userData = QVariant())
    void addItem (const QIcon &icon, const QString &text, const QVariant &userData = QVariant())

  不管是哪一个 addItem() 函数,后面都有一个可选的 QVariant 类型的参数 userData,可以利用这个变量存储用户定义数据。

 

添加图标文件夹

  在项目上右键,‘Add New’-》‘Qt’-》‘Qt Resource File’-》‘choose’-》‘名称’-》‘下一步’-》‘完成’;

  在‘Resource’下会生成一个‘名称.qrc’,右键‘Add Prefix’-》输入'/' -》‘yes to All’-》右键‘**.qrc’-》‘添加现有文件(选择指定文件夹下所有或单个图标)’-》‘yes to All’;

  获取ico图标路径:右键图标,选择‘Copy Path...’。

设置PlainTextEdit的只读属性:

  ui->plainTextEdit->setReadOnly(checked);

设置ComboBox的可编辑:

  ui->comboBox->setEditable(checked);

 

界面如下:

//头文件
#ifndef WIDGET_H
#define WIDGET_H#include namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = nullptr);~Widget();private slots:void on_btnIniItems_clicked();void on_btnIni2_clicked();void on_comboBox_currentIndexChanged(const QString &arg1);void on_comboBox_2_currentIndexChanged(const QString &arg1);void on_btnToComboBox_clicked();void on_plainTextEdit_customContextMenuRequested(const QPoint &pos);void on_btnClearText_clicked();void on_enableEdit_clicked(bool checked);void on_readOnly_clicked(bool checked);private:Ui::Widget *ui;
};#endif // WIDGET_H

  cpp文件:

#include "widget.h"
#include "ui_widget.h"
#include
#include Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_btnIniItems_clicked()
{QIcon icon;icon.addFile(":/images/icons/cityscape.ico");ui->comboBox->clear();
// for (int i &#61; 0;i <20;i&#43;&#43;){
// ui->comboBox->addItem(icon,QString::asprintf("Ttem %d",i));
// }QStringList strList;strList<comboBox->addItems(strList);
}void Widget::on_btnIni2_clicked()
{QMap City_Zone;City_Zone.insert(QStringLiteral("北京"),10);City_Zone.insert(QStringLiteral("上海"),21);City_Zone.insert(QStringLiteral("天津"),22);City_Zone.insert(QStringLiteral("大连"),411);City_Zone.insert(QStringLiteral("锦州"),416);City_Zone.insert(QStringLiteral("徐州"),516);City_Zone.insert(QStringLiteral("福州"),591);City_Zone.insert(QStringLiteral("青岛"),532);foreach (const QString &str, City_Zone.keys()) {ui->comboBox_2->addItem(str,City_Zone.value(str));}
}void Widget::on_comboBox_currentIndexChanged(const QString &arg1)
{ui->plainTextEdit->appendPlainText(arg1);
}void Widget::on_comboBox_2_currentIndexChanged(const QString &arg1)
{QString zone &#61; ui->comboBox_2->currentData().toString();ui->plainTextEdit->appendPlainText(arg1&#43;QStringLiteral("&#xff1a;区号")&#43;"0"&#43;zone);
}void Widget::on_btnToComboBox_clicked()
{QTextDocument *doc &#61; ui->plainTextEdit->document();int cnt &#61; doc->blockCount();QIcon icon(":/images/icons/cityscape.ico");ui->comboBox->clear();for (int i&#61;0;ifindBlockByNumber(i);QString str &#61; textLine.text();ui->comboBox->addItem(icon,str);}
}void Widget::on_plainTextEdit_customContextMenuRequested(const QPoint &pos)
{QMenu *menu &#61; ui->plainTextEdit->createStandardContextMenu();menu->exec(pos);
}void Widget::on_btnClearText_clicked()
{ui->plainTextEdit->clear();
}void Widget::on_enableEdit_clicked(bool checked)
{ui->comboBox->setEditable(checked);
}void Widget::on_readOnly_clicked(bool checked)
{ui->plainTextEdit->setReadOnly(checked);
}

  

转:https://www.cnblogs.com/zzx1905/p/QComboBoxAndQPlainTextEdit.html



推荐阅读
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • Day2列表、字典、集合操作详解
    本文详细介绍了列表、字典、集合的操作方法,包括定义列表、访问列表元素、字符串操作、字典操作、集合操作、文件操作、字符编码与转码等内容。内容详实,适合初学者参考。 ... [详细]
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
author-avatar
专业STB
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有