Qt入门系列开发教程【基础控件篇】QComboBox下拉框
效果图

描述
QComboBox 提供了一种以占用最少屏幕空间的方式向用户呈现选项列表的方法。
组合框是显示当前项目的选择小部件,并且可以弹出可选项目列表。组合框可以是可编辑的,允许用户修改列表中的每个项目。
组合框可以包含像素图和字符串; insertItem() 和 setItemText() 函数被适当地重载。对于可编辑的组合框,提供了 clearEditText() 函数,用于在不更改组合框内容的情况下清除显示的字符串。
如果组合框的当前项发生更改,则会发出三个信号,currentIndexChanged()、currentTextChanged() 和 activate()。 currentIndexChanged() 和 currentTextChanged() 无论更改是通过编程方式还是通过用户交互完成,都始终发出,而 activate() 仅在更改由用户交互引起时才发出。当用户突出显示组合框弹出列表中的项目时,会发出 highlight() 信号。所有三个信号都存在于两个版本中,一个带有 QString 参数,一个带有 int 参数。如果用户选择或突出显示像素图,则仅发出 int 信号。每当更改可编辑组合框的文本时,都会发出 editTextChanged() 信号。
当用户在可编辑的组合框中输入新字符串时,小部件可能会插入也可能不会插入它,并且它可以将其插入到多个位置。默认策略是 InsertAtBottom,但您可以使用 setInsertPolicy() 更改它。
可以使用 QValidator 将输入限制为可编辑的组合框;请参阅 setValidator()。默认情况下,接受任何输入。
例如,可以使用插入函数 insertItem() 和 insertItems() 填充组合框。可以使用 setItemText() 更改项目。可以使用 removeItem() 删除项目,并且可以使用 clear() 删除所有项目。当前项的文本由 currentText() 返回,编号项的文本由 text() 返回。可以使用 setCurrentIndex() 设置当前项目。组合框中的项目数由 count() 返回;可以使用 setMaxCount() 设置最大项目数。您可以允许使用 setEditable() 进行编辑。对于可编辑的组合框,您可以使用 setCompleter() 设置自动完成,用户是否可以添加重复项通过 setDuplicatesEnabled() 设置。
QComboBox 将模型/视图框架用于其弹出列表并存储其项目。默认情况下,QStandardItemModel 存储项目,QListView 子类显示弹出列表。您可以直接访问模型和视图(使用 model() 和 view()),但 QComboBox 还提供设置和获取项目数据的函数(例如,setItemData() 和 itemText())。您还可以设置新模型和视图(使用 setModel() 和 setView())。对于组合框标签中的文本和图标,使用具有 Qt::DisplayRole 和 Qt::DecorationRole 的模型中的数据。请注意,您不能更改 view() 的 SelectionMode,例如,通过使用 setSelectionMode()。
属性
-  
count : const int
此属性保存组合框中的项目数 -  
currentData : const QVariant
此属性保存当前项目的数据 -  
currentIndex : int
此属性保存组合框中当前项的索引。 -  
currentText : QString
当前文本 -  
duplicatesEnabled : bool
该属性保存用户是否可以在组合框中输入重复项 -  
editable : bool
该属性保存用户是否可以编辑组合框 -  
frame : bool
此属性保存组合框是否使用框架绘制自身 -  
iconSize : QSize
此属性保存组合框中显示的图标的大小。 -  
insertPolicy : InsertPolicy
 -  
maxCount : int
此属性保存组合框中允许的最大项目数 -  
maxVisibleItems : int
此属性保存组合框屏幕上允许的最大尺寸,以项目为单位 -  
minimumContentsLength : int
此属性包含应适合组合框的最少字符数。 -  
modelColumn : int
此属性保存模型中可见的列。 -  
placeholderText : QString
设置没有设置有效索引时显示的 placeholderText 文本 -  
sizeAdjustPolicy : SizeAdjustPolicy
此属性包含描述当内容更改时组合框的大小如何更改的策略 
API
//添加item
 void addItem(const QString &text, const QVariant &userData = QVariant())
 void addItem(const QIcon &icon, const QString &text, const QVariant &userData = QVariant())
 void addItems(const QStringList &texts)
 //返回用于自动完成组合框文本输入的完成程序。
 QCompleter *completer() const
 //item数量
 int count() const
 //当前选择的数据
 QVariant currentData(int role = Qt::UserRole) const
//当前索引
 int currentIndex() const
 //当前文本
 QString currentText() const
//是否可以在组合框中输入重复项
 bool duplicatesEnabled() const
 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
 bool hasFrame() const
 virtual void hidePopup()
 QSize iconSize() const
 //插入item
 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 &list)
 //插入语规则
 QComboBox::InsertPolicy insertPolicy() const
 //插入分隔器
 void insertSeparator(int index)
 //是否可编辑
 bool isEditable() const
 //获取数据
 QVariant itemData(int index, int role = Qt::UserRole) const
 //获取代理对象
 QAbstractItemDelegate *itemDelegate() const
 //获取icon
 QIcon itemIcon(int index) const
 //获取文本
 QString itemText(int index) const
 //获取输入框
 QLineEdit *lineEdit() const
 //最大条目
 int maxCount() const
// 最大可见条目
 int maxVisibleItems() const
 //最小文本长度
 int minimumContentsLength() const
 //获取model模型
 QAbstractItemModel *model() const
 //模型列
 int modelColumn() const
 //设置没有设置有效索引时显示的 placeholderText 文本
 QString placeholderText() const
 //删除item
 void removeItem(int index)
// 根索引
 QModelIndex rootModelIndex() const
 //设置合成器
 void setCompleter(QCompleter *completer)
// 开启重复项功能
 void setDuplicatesEnabled(bool enable)
 //设置可编辑功能
 void setEditable(bool editable)
 //设置边框
 void setFrame(bool)
 //设置icon
 void setIconSize(const QSize &size)
 //设置插入规则
 void setInsertPolicy(QComboBox::InsertPolicy policy)
 //设置数据和角色
 void setItemData(int index, const QVariant &value, int role = Qt::UserRole)
 //设置代理
 void setItemDelegate(QAbstractItemDelegate *delegate)
 //设置icon
 void setItemIcon(int index, const QIcon &icon)
 //设置文本
 void setItemText(int index, const QString &text)
 //设置输入框
 void setLineEdit(QLineEdit *edit)
 //设置最大条目
 void setMaxCount(int max)
 //设置最大显示条目
 void setMaxVisibleItems(int maxItems)
 //设置最小文本长度
 void setMinimumContentsLength(int characters)
 //设置模型
 virtual void setModel(QAbstractItemModel *model)
 //设置列数
 void setModelColumn(int visibleColumn)
//设置没有设置有效索引时显示的 placeholderText 文本
 void setPlaceholderText(const QString &placeholderText)
 //设置根modelindex
 void setRootModelIndex(const QModelIndex &index)
 //设置大小调整规则
 void setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy policy)
 //设置正则对象
 void setValidator(const QValidator *validator)
 //将要在组合框弹出窗口中使用的视图设置为给定的 itemView。 组合框拥有视图的所有权。
 void setView(QAbstractItemView *itemView)
 virtual void showPopup()
 //获取大小规则
 QComboBox::SizeAdjustPolicy sizeAdjustPolicy() const
 //获取正则对象
 const QValidator *validator() const
 QAbstractItemView *view() const
 
 公有槽
清空combobox删除所有item
 void clear()
 删除内容lineedite对于combobox
 void clearEditText()
 设置当前索引
 void setCurrentIndex(int index)
 设置当前文本
 void setCurrentText(const QString &text)
 设置可编辑文本
 void setEditText(const QString &text)
 
 信号
当用户在组合框中选择一个项目时发送此信号。
 void activated(int index)
 每当组合框中的 currentIndex 通过用户交互或以编程方式更改时,都会发送此信号。 如果组合框为空或 currentIndex 已重置,则传递项目的索引或 -1。
 void currentIndexChanged(int index)
 每当 currentText 更改时都会发送此信号。 新值作为文本传递。
 void currentTextChanged(const QString &text)
 当组合框的行编辑小部件中的文本发生更改时,将发出此信号。 新文本由文本指定。
 void editTextChanged(const QString &text)
 当用户突出显示组合框弹出列表中的项目时发送此信号。 项目的索引被传递。
 void highlighted(int index)
 当用户在组合框中选择一个项目时发送此信号
 void textActivated(const QString &text)
 当用户突出显示组合框弹出列表中的项目时发送此信号。 项目的文本被传递。
 void textHighlighted(const QString &text)
 
- 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)