2.4.2QT之comboBox下拉框

这篇具有很好参考价值的文章主要介绍了2.4.2QT之comboBox下拉框。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2.4.2QT之comboBox下拉框



前言

QComboBo 以列表的方式提供一个下拉选项提供给用户显示,节省屏幕占用空间。下拉组合框中数据都可以修改编辑,可以包含图片以及字符串文本。Word 文档软件中的字体选择框、字号选择框、颜色选择框都是使用ComboBo 实现。


提示:以下是本篇文章正文内容,下面案例可供参考

2.4.2.1 QComboBo 常用的成员函数

1、添加条目信息

void QComboBox::addItem(const QString &text, const QVariant &userData = QVariant()) 
void QComboBox::addItem(const QIcon &icon, const QString &text, const QVariant &userData = QVariant())
void QComboBox::addItems(const QStringList &texts)

addItem 是一个重载函数,可以单独添加字符串文本,也可以添加图标.

2、返回所有条目的数量

int count() const

3、设置选项框显示的图标尺寸

QSize iconSize() const
void setIconSize(const QSize & size)

4、返回指定条目的图标或者字符串

QString QComboBox::itemText(int index) const
QIcon QComboBox::itemIcon(int index) const

5、给指定条目设置图标和文本

void QComboBox::setItemIcon(int index, const QIcon & icon)
void QComboBox::setItemText(int index, const QString & text)

6、设置选项是否可以编辑

bool isEditable() const
void setEditable(bool editable)

默认情况下该属性为 false,不能编辑。

7、设置当前编辑框显示的文本

QString currentText() const //返回当前编辑框的字符串文本
void setCurrentText(const QString &text) //设置当前显示的字符串文本

使用 currentText 属性的前提是当前的 QComboBox 必须支持文本属性(setCurrentText(true))

8、设置 QComboBox 支持显示的最大条目数量。默认是 2147483647 个

int maxCount() const
void setMaxCount(int max)

9、设置指定选项的显示文本和图标

void setItemText(int index, const QString &text);
void setItemIcon(int index, const QIcon &icon);
void setItemData(int index, const QVariant &value, int role = Qt::UserRole);

int index 表示条目选项的索引值。索引从 0 开始计算。

10、插入新的条目选项

void insertItem(int index, const QString &text, const QVariant &userData = QVariant());
void insertItem(int index, const QIcon &icon, const QString &text,const QVariant &userData = QVariant());
void insertItems(int index, const QStringList &texts);

int index 表示条目选项的索引值。

2.4.2.2QComboBox 常用的槽函数

void clear(); 清除所有条目选项
void clearEditText(); 清除文本显示
void setEditText(const QString &text); 设置选项框显示的文本
void setCurrentIndex(int index); 设置当前选项的节点索引
void setCurrentText(const QString &text); 设置当前选项的文本

2.4.2.3QComboBox 常用的信号

1、editTextChanged 信号:编辑框的文本发生改变时发出(QComboBox 需要可编辑)。形参保存改变后的新文本。

void editTextChanged(const QString &);

2、activated 信号:当用户在下拉列表框中选择了一个选项发出。形参保存选中选项的节点索引值或文本。

void activated(int index);
void activated(const QString &text)

注意:即使选中的选项没有发生改变(本次选择与之前的选择相同)activated 信号也会发出。

3、currentTextChanged 信号:当编辑框的文本发生改变时发出。形参保存改变后的新文本。

void currentTextChanged(const QString &text)

注意:该信号对应 currentText 属性

4、currentIndexChanged 信号:点击某一个选项时发出。形参保存选中选项的节点索引值或文本。

void currentIndexChanged(int index)
void currentIndexChanged(const QString &text)

注意:如果选项没有发生改变(本次选择与之前的选择相同)不会发出 currentIndexChanged 信号。

5、highlighted 信号:当光标选中选项时发出,不需要点击选项。形参保存选中选项的节点索引值或文本。

void highlighted(int index)
void highlighted(const QString &text)

示例

1、ui界面设计

控件:Lable标签(机器状态,用户账号,用户密码),Combobox下拉框(机器状态,用户账号),LineEdit单行编辑器(用户密码),PushButton按钮(连接)

2、设计效果
qt下拉框控件,C++,QT,嵌入式学习,qt,开发语言,嵌入式硬件

qt下拉框控件,C++,QT,嵌入式学习,qt,开发语言,嵌入式硬件

qt下拉框控件,C++,QT,嵌入式学习,qt,开发语言,嵌入式硬件

qt下拉框控件,C++,QT,嵌入式学习,qt,开发语言,嵌入式硬件
3、代码文章来源地址https://www.toymoban.com/news/detail-783201.html

myCombobox.pro文件

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++11

# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    main.cpp \
    widget.cpp

HEADERS += \
    widget.h

FORMS += \
    widget.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

RESOURCES += \
    image.qrc

widget,h文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:
    void on_pushButton_connect_clicked();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

main.cpp文件

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

widget.cpp文件

#include "widget.h"
#include "ui_widget.h"
#include<QComboBox>//使用下拉框需要的头文件
#include<QDebug>//打印输出
#include<QMessageBox>//消息对话框
#include<QIcon>//图标的头文件
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //1、创建机器状态列表
    QStringList list;
    ui->comboBox_state->addItem(QIcon(":/image/creative-commons-nd-line.png"),"开始");
    ui->comboBox_state->addItem(QIcon(":/image/forbid-fill.png"),"暂停");
    ui->comboBox_state->addItem(QIcon("::/image/shut-down-fill.png"),"停止");


    //2、创建待选的账号列表
    list<<"123123"<<"3534535"<<"453252";
    ui->comboBox_number->addItems(list);//添加显示的条目
    ui->comboBox_number->setEditable(true);//设置选项可编辑属性
    //设置密码显示模式
    ui->lineEdit_password->setEchoMode(QLineEdit::Password);
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_connect_clicked()
{
    //实际运用中可以通过 QCryptographicHash 类进行加密
     QString password_info;
     password_info+=tr("账号:");
     password_info+=ui->comboBox_number->currentText();
     password_info+="\n";
     password_info+=tr("密码:");
     password_info+=ui->lineEdit_password->text();
     password_info+="\n";
     QMessageBox::information(this, tr("登录信息"), password_info,QMessageBox::Ok);
}

widget.ui文件

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Widget</class>
 <widget class="QWidget" name="Widget">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>800</width>
    <height>600</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Widget</string>
  </property>
  <widget class="QWidget" name="">
   <property name="geometry">
    <rect>
     <x>60</x>
     <y>81</y>
     <width>351</width>
     <height>161</height>
    </rect>
   </property>
   <layout class="QFormLayout" name="formLayout">
    <item row="0" column="0">
     <widget class="QLabel" name="label">
      <property name="text">
       <string>机器状态:</string>
      </property>
     </widget>
    </item>
    <item row="0" column="1">
     <widget class="QComboBox" name="comboBox_state"/>
    </item>
    <item row="1" column="0">
     <widget class="QLabel" name="label_2">
      <property name="text">
       <string>用户账号:</string>
      </property>
     </widget>
    </item>
    <item row="1" column="1">
     <widget class="QComboBox" name="comboBox_number"/>
    </item>
    <item row="2" column="0">
     <widget class="QLabel" name="label_3">
      <property name="text">
       <string>用户密码:</string>
      </property>
     </widget>
    </item>
    <item row="2" column="1">
     <widget class="QLineEdit" name="lineEdit_password"/>
    </item>
    <item row="3" column="0" colspan="2">
     <widget class="QPushButton" name="pushButton_connect">
      <property name="text">
       <string>连接</string>
      </property>
     </widget>
    </item>
   </layout>
  </widget>
 </widget>
 <resources/>
 <connections/>
</ui>


到了这里,关于2.4.2QT之comboBox下拉框的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【嵌入式——QT】容器类

    Qt提供了基于模板的容器类,这些容器类可以用于存储指定类型的数据项,Qt的容器类比标准模板库(STL)中的容器类更轻巧、安全和易于使用。它们还是线程安全的,它们作为只读容器时可被多个线程访问。 容器类是基于模板的类,如常用的容器类QList,T是一个具体的类型,可

    2024年02月22日
    浏览(47)
  • 【嵌入式Qt开发入门】初识Qt——Linux下安装Qt

            Qt 是一个跨平台的 C++开发库。主要用来开发图形用户界面(Graphical User Interface,简 称 GUI)程序。         Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部; Qt 除了可以绘制漂亮的界面(包括控件、布局、交互),还包含很多

    2024年02月16日
    浏览(54)
  • 嵌入式 QT 界面布局管理

    目录 1、实例程序功能 2、界面组件布局 2.1 界面组件的层次关系 2.2 布局管理 2.3 伙伴关系和Tab顺序       创建一个 Widget Application 项目 samp2_2, 在创建窗体时选择基类 QDialog ,生成的类命名为 QWDialog ,并选择生成窗体。     如 此 新建 的项 目 samp2_2 有一 个界 面文 件 qwdi

    2024年02月04日
    浏览(50)
  • 嵌入式:QT Day2

    源码: widget.h second.h widget.cpp second.cpp main.cpp    

    2024年02月15日
    浏览(44)
  • 嵌入式:QT Day1

    源码: widge.h  widge.cpp  main.cpp

    2024年02月15日
    浏览(46)
  • 嵌入式:QT Day4

    源码: widget.h widget.cpp main.cpp

    2024年02月14日
    浏览(40)
  • 【嵌入式——QT】QStyledItemDelegate用法详解

    QStyledItemDelegate是所有Qt item视图的默认委托,在创建它们时就会被安装在它们上面。 QStyledItemDelegate类是模型/视图类之一,是Qt模型/视图框架的一部分。委托允许项目的显示和编辑独立于模型和视图进行开发。 模型中数据项的数据被赋值为ItemDataRole;每个物品可以为每个角色存

    2024年01月23日
    浏览(47)
  • 【嵌入式Qt开发入门】如何使用Qt进行绘图——QPainter 绘图

            绘图与图表在嵌入式里有的比较多,尤其是图表,我们常在股票里看到的“图表折线/曲线 图/饼状图等”都可以用 Qt 的图表来实现。绘图和图表的内容本章主要介绍绘图和图表的基本操作,以简单的例子呈现绘图与图表的用法,目的就是快速入门绘图与图表,关

    2024年02月12日
    浏览(46)
  • Qt固件映像 Raspberry Pi 嵌入式C++(Qt)编程

    在我们的游戏中,我们有一个桨、一个球和三十块砖。 计时器用于创建游戏周期。 我们不处理角度,我们只是改变方向:上、下、左、右。 Qt5 库是为创建计算机应用程序而开发的。尽管如此,它也可以用来创建游戏。开发计算机游戏是了解有关 Qt5 的更多信息的好方法。

    2024年01月19日
    浏览(42)
  • 嵌入式开发板qt gdb调试

    1) 启动 gdbserver ssh 或者 telnet 登陆扬创平板 192.168.0.253, 进入命令行执行如下: chmod 777 /home/HelloWorld (2) 打 开 QTcreator-Debug-StartDebugging-Attach to Running Debug Server 进行如下设置,设置监听端口10000. 点击上图中的按钮,由于按钮中的函数设置了断点,则跳到断点,界面如下

    2024年02月04日
    浏览(94)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包