QT之QComboBox的简介

QT之QComboBox的简介

    • 成员函数
    • 使用例程
      • ComboBox每个item前面显示图片

成员函数

以下是QComboBox的一些常用成员函数:

1)QComboBox(QWidget *parent = nullptr)
这是QComboBox的构造函数,它创建一个新的QComboBox对象。如果提供了一个父对象,则新组合框将成为父对象的一个子对象。

2)void addItem(const QString &text, int role = Qt::UserRole)
这个函数将一个项目添加到组合框中。这个项目有一个显示的文本和一个角色,角色通常用于区分不同的项目类型。

3)void addItems(const QStringList &list)
这个函数将一系列项目添加到组合框中。每个项目只包含一个显示的文本,没有角色。

4)void clear()
这个函数移除组合框中的所有项目。

5)int count() const
这个函数返回组合框中的项目数量。

6)QString currentText() const
这个函数返回当前选中项目的文本。

7)int currentIndex() const
这个函数返回当前选中项目的索引。

8)void setCurrentIndex(int index)
这个函数设置当前选中的项目。如果索引是有效的,那么这个项目会被选中;否则,没有项目会被选中。

9)void setCurrentText(const QString &text)
这个函数设置当前选中的项目。如果文本是有效的,那么这个项目会被选中;否则,没有项目会被选中。

10)int findText(const QString &text, int from = 0, Qt::MatchFlags flags = Qt::MatchExactly) const
这个函数返回与给定文本匹配的第一个项目的索引。如果没有找到匹配的项目,则返回-1。

11)void setModel(QAbstractItemModel *model)
这个函数设置组合框的模型。模型提供了组合框中的项目。

12)QAbstractItemModel *model() const
这个函数返回组合框的模型。

13)void setView(QAbstractItemView *view)
这个函数设置组合框的视图。视图提供了组合框中项目的可视化表示。

14)QAbstractItemView *view() const
这个函数返回组合框的视图。

15)void setCompleter(QCompleter *completer)
这个函数设置组合框的补全器。补全器提供了文本输入时的自动补全功能。

16)QCompleter *completer() const
这个函数返回组合框的补全器。

以上只是QComboBox的部分成员函数,实际使用中还需要根据具体需求进行选择和设置。

使用例程

ComboBox每个item前面显示图片

QComboBox中的每个项前面显示图片,你可以使用QComboBox的视图(view)功能,以及QStandardItemModel和QStandardItem类。
以下是一个示例代码,演示如何在QComboBox中的每个项前面显示图片:

#include   
#include   
#include   
#include   
#include   
  
int main(int argc, char *argv[])  
{  
    QApplication app(argc, argv);  
  
    // 创建QComboBox  
    QComboBox *comboBox = new QComboBox();  
  
    // 创建QStandardItemModel作为视图模型  
    QStandardItemModel *model = new QStandardItemModel();  
    comboBox->setModel(model);  
  
    // 创建三个项,并在每个项前面设置图片  
    for (int i = 0; i < 3; ++i) {  
        // 创建QStandardItem对象  
        QStandardItem *item = new QStandardItem();  
        // 设置项的文本  
        item->setText(QString("Item %0").arg(i + 1));  
        // 创建QPixmap对象,并加载图片  
        QPixmap pixmap("path_to_image" + QString::number(i + 1) + ".jpg");  
        // 将QPixmap对象设置为项的图标  
        item->setIcon(QIcon(pixmap));  
        // 将项添加到模型中  
        model->appendRow(item);  
    }  
  
    comboBox->show();  
    return app.exec();  
}

在这个示例中,我们创建了一个QComboBox,然后创建了一个QStandardItemModel作为视图模型,并将其设置为QComboBox的模型。然后,我们循环创建了三个项,并为每个项设置了文本和图标(通过QPixmap对象加载图片)。最后,我们将这些项添加到模型中,并显示QComboBox。

请确保将"path_to_image"替换为实际图片的路径。另外,你可以根据需要修改项的数量和图片的文件名格式。

你可能感兴趣的:(qt,开发语言)