Qt控件--QComboBox

Qt控件--QComboBox

  • QComboBox
    • 属性
      • editable : bool
      • currentText : QString
      • currentIndex
      • maxVisibleItems : int
      • maxCount : int
      • insertPolicy : InsertPolicy
      • sizeAdjustPolicy : SizeAdjustPolicy
      • minimumContentsLength : int
      • iconSize : QSize
      • duplicatesEnabled : bool
      • frame : bool
      • modelColumn : int
    • 增加项
      • ui界面增加
      • 代码增加
    • QComboBox列表项的访问
      • int currentIndex()
      • QString currentText()
      • QVariant currentData(int role = Qt::UserRole)
      • QString itemText(int index)
      • QVariant itemData(int index, int role = Qt::UserRole)
      • int count()
      • 在一个QComboBox组件上选择项发生变化时,会发射如下两个信号:

QComboBox

QComboBox主要的功能是提供一个下拉列表供选择输入。

属性

Qt控件--QComboBox_第1张图片
Properties:

count : const int
currentData : const QVariant
currentIndex : int
currentText : QString
duplicatesEnabled : bool
editable : bool
frame : bool
iconSize : QSize
insertPolicy : InsertPolicy
maxVisibleItems : int
minimumContentsLength : int
modelColumn : int
sizeAdjustPolicy : SizeAdjustPolicy

editable : bool

是否可以编辑。

currentText : QString

当前的文本信息。

currentIndex

当前显示的项目的序列号。

maxVisibleItems : int

最大可以显示的项。

maxCount : int

最大保存的数目。

insertPolicy : InsertPolicy

此属性保存用于确定用户插入的项目应出现在组合框中的位置的策略。默认值为 InsertAtBottom,表示新项目将出现在项目列表的底部。

InsertPolicy值的描述:

Constant Value Description
QComboBox::NoInsert 0 该字符串不会插入到组合框中。
QComboBox::InsertAtTop 1 该字符串将作为组合框中的第一项插入。
QComboBox::InsertAtCurrent 2 当前项目将被字符串替换。
QComboBox::InsertAtBottom 3 字符串将插入到最后一项之后
QComboBox::InsertAfterCurrent 4 该字符串插入在组合框中的当前项目之后。
QComboBox::InsertBeforeCurrent 5 该字符串插入在组合框中的当前项目之前。
QComboBox::InsertAlphabetically 6 该字符串按字母顺序插入组合框中。

sizeAdjustPolicy : SizeAdjustPolicy

此属性包含描述内容更改时组合框大小如何更改的策略。默认值为 AdjustToContentsOnFirstShow。

Constant Value Description
QComboBox::AdjustToContents 0 组合框将始终根据内容进行调整
QComboBox::AdjustToContentsOnFirstShow 1 组合框将在第一次显示时调整其内容。
QComboBox::AdjustToMinimumContentsLength 2 改用 AdjustToContents 或 AdjustToContentsOnFirstShow。
QComboBox::AdjustToMinimumContentsLengthWithIcon 3 组合框将调整为 minimumContentsLength 加上图标的空间。

minimumContentsLength : int

此属性包含应适合组合框的最小字符数。默认值为 0。如果将此属性设置为正值,则 minimumSizeHint() 和 sizeHint() 会将其考虑在内。

iconSize : QSize

此属性保存组合框中显示的图标的大小。除非明确设置,否则将返回当前样式的默认值。此大小是图标可以具有的最大大小;较小尺寸的图标不会放大。

duplicatesEnabled : bool

此属性保存用户是否可以将重复项输入组合框 请注意,始终可以以编程方式将重复项插入组合框。默认情况下,此属性为 false(不允许重复)。

frame : bool

此属性保存组合框是否使用框架绘制自身 如果启用(默认)组合框在框架内绘制自身,否则组合框在没有任何框架的情况下绘制自身。

modelColumn : int

此属性保存模型中可见的列。如果在填充组合框之前设置,则弹出视图不会受到影响,将显示第一列(使用此属性的默认值)。默认情况下,此属性的值为 0。

增加项

ui界面增加

Qt控件--QComboBox_第2张图片

代码增加

void addItem
{ //"初始化列表"按钮
   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)); //带图标
//    ui->comboBox->addItem(QString::asprintf("Item %d",i)); //不带图标
}

如果只是添加字符串列表项,而且数据来源于一个QStringList变量,可以使用addItems()函数,示例代码如下:

ui->comboBox->clear();
QStringList strList;
strList<<"北京"<<"上海"<<"天津"<<"河北省"<<"山东省"<<"山西省";
ui->comboBox->addItems(strList);

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

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

void Widget::on_btnIni2_clicked()
{//初始化具有自定义数据的ComboBox
   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->comboBox2->clear();
   foreach(const QString &str,City_Zone.keys())
      ui->comboBox2->addItem(str,City_Zone.value(str));
}

QComboBox列表项的访问

QComboBox存储的项是一个列表,但是QComboBox不提供整个列表用于访问,可以通过索引访问某个项。访问项的一些函数主要有以下几种。

int currentIndex()

返回当前项的序号,第一个项的序号为0。

QString currentText()

返回当前项的文字。

QVariant currentData(int role = Qt::UserRole)

返回当前项的关联数据,数据的缺省角色为role = Qt::UserRole,角色的意义在5.1节详细介绍。

QString itemText(int index)

返回指定索引号的项的文字。

QVariant itemData(int index, int role = Qt::UserRole)

返回指定索引号的项的关联数据。

int count()

返回项的个数。

在一个QComboBox组件上选择项发生变化时,会发射如下两个信号:

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

你可能感兴趣的:(QT,qt)