QtAssiant-QComboBox

配置

  header: #include <QComboBox>

  qmake: QT+= widgets

  基类:    QWidget

  派生类:QFontComboBox

 

详细描述  

  

  QComboBox控件是由一个按钮和弹出式列表框组合而成。它提供了一种占用最小屏幕空间的方式给用户提供呈现出选择项列表的方法。它是一个显示当前项的选择型控件,并且能够弹出一个可选项列表。

  它可被编辑,且允许用户修改下拉项中的任意项。子项可以是字符串和pixmap,  insertItem()和setItemText()方法可以用来适当重载。对于可编辑的组合框而言,还提供了clearEditTect()方法用来清除当前显示的字符串而不会改变它本身内容(数据)。

  当前显示的项发生改变时,会有两个信号被触发: currentIndexChanged() 和 activated()。 而currentIndexChanged()不管是通过代码调用还是用户交互的方式总是会被触发,但activated()却只有在用户交互的方式下才会被触发。当用户在下拉列表中高亮一各项时信号highlighted()会被触发。这三个信号都有两个不同的版本,一个形参是Int类型的,另一个是字符串类型的。如果用户选择或高亮一个pixmap(位图)项时,只有形参为int的信号版本会被触发。当可编辑组合框的文本改变时,就会触发editTextChanged()信号。
  当用户在可编辑组合框中输入新的字符时,既可以将内容新增到组合框中,也可以选择不新增。默认策略是加在列表项的最后,当然你可以通过setInsertPolicy()来改变这一默认行为。

  可以使用QValidator()来限定编辑框的输入内容,详情见类QValidator。默认情况下可以输入任何内容

  组合框可以通过输入方法来填充新内容,如insertItem或insertItems().用setItemText()可以改变项,用removeItem()可以移除项,用clear()可以清除所有项。通过currentText()可以获取当前项的文本内容,获取其它索引项的文本时可以用text()方法。

  当前项可以通过setCurrentIndex()来改变。组合框中项的数量可以用count()来获取。可以通过setMaxCount()来设置组合框存储子项的最大数量,通过setEditable()来控制组合框是否可被编辑,用setDuplicatesEnabled()设置是否可增加重复项。

  组合框是基于model/view框架来实现弹出列表和存储子项。默认情况下用QStandardItemModel存储子项、用QListView来显示下拉列表。你可以通过model()和view()来直接访问它们,但组合框本身也提供了方法来获取和设置子项数据(如setItemData()和itemText()),也可以通过setModel()、setView()来设置新的模型和视图。对于组合框中显示的文本和图标,可以用Qt::DisplayRole 和 Qt::DecorationRole来改变。需要注意的是你不能通过诸如setSelectionMode()方法来更改view()的SelectionMode

posted @ 2021-03-24 17:53  Qt王二狗  阅读(128)  评论(0编辑  收藏  举报