Qt应用开发(基础篇)——QComboBox

这篇具有很好参考价值的文章主要介绍了Qt应用开发(基础篇)——QComboBox。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言      

         QComboBox下拉框继承于QWidget,作为Qt Wdiget常用的控件,在实际开发中,经常用来作为某些特定参数属性的选择,比如语言国家字体主题模式串口号波特率等选择性已知需要下拉的场景。而QFontComboBox字体下拉框继承于QComboBox,是一个封装专门用来显示字体的控件。

Qt应用开发(基础篇)——QComboBox,QT应用开发,qt,c++,上位机,PC

        QComboBox是一种显示列表选项的控件,占用屏幕最小。列表内容可以是图像或者字符串,列表内容可以是固定也可以是可编辑的。在应用中可随时做插入删除的动态操作,通过信号获取状态的改变。

Qt应用开发(基础篇)——QComboBox,QT应用开发,qt,c++,上位机,PC

         QFontComboBox通常用于工具栏,与QComboBox一起用于控制字体大小,两个QToolButton或者QCheckBox用于控制粗体和斜体。

Qt应用开发(基础篇)——QComboBox,QT应用开发,qt,c++,上位机,PC

二、QComboBox类

1、count

        该属性保存当前下拉列表的总条数,没有则是0。

 int count() const //当前下拉列表总条数

2、currentIndex

        该属性保存当前列表的显示下标,从0开始。如果下拉框是空的,那么此值为-1。

int currentIndex() const            //当前下拉框显示的列表值的下标
void setCurrentIndex(int index)     //设置下拉框显示的列表值的下标

3、currentText

        该属性保存当前显示的文本。

QString currentText() const                //返回当前显示的文本
void setCurrentText(const QString &text)   //设置当前显示的文本

4、duplicatesEnabled

        该属性保存是否列表插入重复的数据,默认为false。

bool duplicatesEnabled() const           //获取是否可以插入重复项
void setDuplicatesEnabled(bool enable)   //设置是否可以插入重复项

5、editable

        该属性保存是否可编辑,默认值为false。

 bool isEditable() const            //获取是否可编辑
 void setEditable(bool editable)    //设置是否可编辑

6、frame

        该属性保存下拉框是否使用边框绘制。

bool hasFrame() const    //获取是否有边框
void setFrame(bool)      //设置是否有边框

7、iconSize

        该属性保存组合框显示的图标大小,添加列表项的时候可以同时设置icon路径。

QSize iconSize() const        //获取图标尺寸
void setIconSize(const QSize &size)    //设置图标尺寸
void addItem(const QIcon &icon, const QString &text, const QVariant &userData = QVariant())    //添加列表项,显示文本和自定义数据
QIcon itemIcon(int index) const    //获取图标

8、insertPolicy

        该属性保存组合框插入策略,默认新插入的为最后一项。

QComboBox::InsertPolicy insertPolicy() const           //获取插入策略
void setInsertPolicy(QComboBox::InsertPolicy policy)    //设置插入策略

1) QComboBox::NoInsert                //不会被插入
2) QComboBox::InsertAtTop             //当做第一项插入
3) QComboBox::InsertAtCurrent         //当前项被替换
4) QComboBox::InsertAtBottom          //当做最后一项插入
5) QComboBox::InsertAfterCurrent      //插入到当前项之后
6) QComboBox::InsertBeforeCurrent     //插入到当前项之前
7) QComboBox::InsertAlphabetically    //字符串按照字母顺序插入到组合框中

9、maxCount

        该属性保存组合框下拉列表最大支持条数。

 int maxCount() const            //获取最大条数
 void setMaxCount(int max)       //设置最大条数

10、maxVisibleItems

        该属性保存屏幕下拉显示的最大条数,默认10条。

int maxVisibleItems() const          //获取显示最大条数
void setMaxVisibleItems(int maxItems)//设置显示最大条数

11、minimumContentsLength

        该属性保存组合框中应容纳的最小字符数,默认为0。

int minimumContentsLength() const                //获取最小字符数
void setMinimumContentsLength(int characters)    //设置最小字符数

12、sizeAdjustPolicy

        该属性保存尺寸调整策略,出于性能考虑,大模型才考虑使用此方法。

QComboBox::SizeAdjustPolicy sizeAdjustPolicy() const    //获取策略
void setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy policy) //设置策略
1) QComboBox::AdjustToContents             //组合框将始终根据内容进行调整
2) QComboBox::AdjustToContentsOnFirstShow  //组合框将在第一次显示时调整到它的内容。
3) QComboBox::AdjustToMinimumContentsLengthWithIcon //组合框将调整到最小宽度加图标距离

13、userData

        自定义数据,下拉表项绑定自定义数据。

void addItem(const QString &text, const QVariant &userData = QVariant()) //插入一列,可选是否附带自定义数据
int findData(const QVariant &data, int role = Qt::UserRole, Qt::MatchFlags flags = static_cast<Qt::MatchFlags>(Qt::MatchExactly|Qt::MatchCaseSensitive)) const  //根据自定义数据查找
int findText(const QString &text, Qt::MatchFlags flags = Qt::MatchExactly|Qt::MatchCaseSensitive) const //根据列表文本查找

        在实际应用中,给每一项添加自定义数据是很常用的,比如需要显示各个国家的下拉框,分别有中国、美国、英国。他们代表的值分别为5、6、7,就需要addItem的时候绑定每个文本代表的自定义数据值,当我们从通讯得到了6,通过findData去找到绑定的数据得到下标,从而让下拉框显示美国。

QComboBox *box = new QComboBox(this);
box->addItem("中国",5);
box->addItem("美国",6);
box->addItem("英国",7);
int idx = box->findData(6);
box->setCurrentIndex(idx);

14、信号

        实际应用中,我们会需要根据下拉项的变化做一些联动或者数据上的改变,信号获取由文本变化currentTextChanged或者currentIndexChanged来相应处理,当你需要区分是否是用户主动选择改变则使用activatedtextActivated

信号: 
void activated(int index)                    //用户主动改变当前项触发
void textActivated(const QString &text)      //用户主动改变当前项触发
void currentTextChanged(const QString &text) //当前文本改变同步触发此信号
void currentIndexChanged(int index)          //当下标改变的时候此信号同步触发
void editTextChanged(const QString &text)    //编辑模式下内容改变触发
void highlighted(int index)                  //用户改变高亮项触发

四:QFontComboBox类

1、currentFont

        该属性控制当前显示的字体,返回QFont。当用户选择新的字体时,除了currentIndexChanged()之外,还会发出currentFontChanged()信号

QFont currentFont() const              //获取当前字体
void setCurrentFont(const QFont &f)    //设置当前字体

2、fontFilters

        该属性保存要过滤的字体,调用setFontFilters()来过滤掉某些不想要的字体。

QFontComboBox::FontFilters fontFilters() const
void setFontFilters(QFontComboBox::FontFilters filters)
  • QFontComboBox::AllFonts                          显示所有字体
  • QFontComboBox::ScalableFonts                显示可缩放字体
  • QFontComboBox::NonScalableFonts         显示不可伸缩字体
  • QFontComboBox::MonospacedFonts         显示等宽字体
  • QFontComboBox::ProportionalFonts          显示比例字体

3、writingSystem

        该属性保存显示支持给定书写系统的字体。默认QFontDatabase:Any文章来源地址https://www.toymoban.com/news/detail-610598.html

QFontDatabase::WritingSystem writingSystem() const
void setWritingSystem(QFontDatabase::WritingSystem)
  • QFontDatabase::Any
  • QFontDatabase::Latin
  • QFontDatabase::Greek
  • QFontDatabase::Cyrillic
  • QFontDatabase::Armenian
  • QFontDatabase::Hebrew
  • QFontDatabase::Arabic
  • QFontDatabase::Syriac
  • QFontDatabase::Thaana
  • QFontDatabase::Devanagari
  • QFontDatabase::Bengali
  • QFontDatabase::Gurmukhi
  • QFontDatabase::Gujarati
  • QFontDatabase::Oriya
  • QFontDatabase::Tamil
  • QFontDatabase::Telugu
  • QFontDatabase::Kannada
  • QFontDatabase::Malayalam
  • QFontDatabase::Sinhala
  • QFontDatabase::Thai
  • QFontDatabase::Lao
  • QFontDatabase::Tibetan
  • QFontDatabase::Myanmar
  • QFontDatabase::Georgian
  • QFontDatabase::Khmer
  • QFontDatabase::SimplifiedChinese
  • QFontDatabase::TraditionalChinese
  • QFontDatabase::Japanese
  • QFontDatabase::Korean
  • QFontDatabase::Vietnamese
  • QFontDatabase::Symbol
  • QFontDatabase::OtherSymbol
  • QFontDatabase::Ogham
  • QFontDatabase::Runic
  • QFontDatabase::Nko

到了这里,关于Qt应用开发(基础篇)——QComboBox的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt应用开发(基础篇)——文本编辑窗口 QTextEdit

             QTextEdit 类继承于QAbstractScrollArea,QAbstractScrollArea继承于QFrame,用来显示富文本和纯文本的窗口部件。 框架类 QFrame https://blog.csdn.net/u014491932/article/details/132188655 滚屏区域基类 QAbstractScrollArea https://blog.csdn.net/u014491932/article/details/132245486          QTextEdit 是一个先

    2024年02月11日
    浏览(26)
  • Qt应用开发(基础篇)——颜色选择器 QColorDialog

             QColorDialog 类继承于QDialog,是一个设计用来选择颜色的对话框部件。         对话框窗口 QDialog          QColorDialog 颜色选择器一般用来让用户选择颜色,比如画图工具中选择画笔的颜色、刷子的颜色等。你可以使用静态函数 QColorDialog::getColor() 直接显示对

    2024年02月10日
    浏览(27)
  • Qt应用开发(基础篇)——对话框窗口 QDialog

            QDialog 类继承于QWidget,是Qt基于对话框窗口(消息窗口 QMessageBox 、颜色选择窗口 QColorDialog 、文件选择窗口 QFileDialog 等)的基类。           QDialog 窗口是顶级的窗口,一般情况下,用来当做用户短期任务(确认、输入、选择)或者和用户交流(提示、错误、警告、进

    2024年02月10日
    浏览(32)
  • Qt应用开发(基础篇)——输入对话框 QInputDialog

             QInputDialog 类继承于 QDialog ,是一个简单方便的对话框,用于从用户获取单个值。         对话框窗口 QDialog           QInputDialog输入对话框 带有一个文本标签、一个输入框和标准按钮。输入内容可以字符、数字和选项,文本标签用来告诉用户应该要输入什

    2024年02月10日
    浏览(28)
  • Qt应用开发(基础篇)——纯文本编辑窗口 QPlainTextEdit

             QPlainTextEdit 类继承于 QAbstractScrollArea , QAbstractScrollArea 继承于 QFrame ,是Qt用来显示和编辑纯文本的窗口。 滚屏区域基类 https://blog.csdn.net/u014491932/article/details/132245486?spm=1001.2014.3001.5501 框架类QFrame https://blog.csdn.net/u014491932/article/details/132188655?spm=1001.2014.3001.5501   

    2024年02月11日
    浏览(31)
  • Qt应用开发(基础篇)——LCD数值类 QLCDNumber

            QLCDNumber类继承于QFrame,QFrame继承于QWidget,是Qt的一个基础小部件。         框架类QFrame介绍         QLCDNumber用来显示一个带有类似lcd数字的数字,适用于 信号灯 、 跑步机 、 体温计 、 时钟 、 电表 、 水表 、 血压计 等仪器类产品的数值显示。      

    2024年02月13日
    浏览(33)
  • Qt应用开发(基础篇)——MDI窗口 QMdiArea QMdiSubWindow

             QMdiArea 类继承于QAbstractScrollArea,QAbstractScrollArea继承于QFrame,是Qt用来显示MDI窗口的部件。        滚屏区域基类 QAbstractScrollArea https://blog.csdn.net/u014491932/article/details/132245486        框架类 QFrame https://blog.csdn.net/u014491932/article/details/132188655           QMdiA

    2024年02月12日
    浏览(34)
  • Qt应用开发(基础篇)——文件选择对话框 QFileDialog

             QFileDialog 类继承于 QDialog ,提供了一个允许用户选择文件或目录的对话框。         对话框窗口 QDialog          QFileDialog 文件选择对话框允许用户在当前文件系统中选择一个或者多个文件或者文件路径,使用静态函数创建是很简便的方式,比如:      

    2024年02月09日
    浏览(33)
  • Qt应用开发(基础篇)——信号槽 Signals and Slots

            Qt成为我们今天拥有的灵活而舒适的工具,除了友好和能够快速开发设计师界面, 信号槽 机制是最大的核心特征,也是区别于其他开发框架最大的优势。         Qt的信号槽作用于两个对象之间的通信。当一个对象发生了改变,它希望其他关心它的对象能够了解

    2024年02月13日
    浏览(27)
  • Qt应用开发(基础篇)——时间微调输入框QDateTimeEdit、QDateEdit、QTimeEdit

             QAbstractSpinBox 是全部微调输入框的父类,这是一种允许用户通过点击上下箭头按钮或输入数字来调整数值的图形用户界面控件,父类提供了当前值 text 、对齐方式 align 、只读 readOnly 等通用属性和方法。在上一篇数值微调输入框中有详细介绍。          QDate

    2024年02月14日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包