技术标签: # Qt Widgets
QComboBox小部件是一个组合的按钮和弹出列表。
Header | #include < QComboBox> |
---|---|
qmake | QT += widgets |
Inherits | QWidget |
Inherited By | QFontComboBox |
QComboBox提供了一种以占用最小屏幕空间的方式向用户呈现选项列表的方法。
组合框是显示当前项目的选择小部件,可以弹出可选择项目的列表。组合框可以编辑,允许用户修改列表中的每个项目。
组合框可以包含pixmap和字符串;insertItem() 和setItemText() 函数可以适当地重载。对于可编辑的组合框,提供了函数clearEditText() ,以清除显示的字符串而不更改组合框的内容。
如果组合框的当前项更改,将发出三个信号:currentIndexChanged() 、currentTextChanged() 和activated() 。currentIndexChanged() 和currentTextChanged() 始终发出,无论更改是通过编程方式还是通过用户交互进行的,而activated() 仅在更改是由用户交互引起时发出。当用户高亮显示组合框弹出列表中的项目时,将发出highlighted() 信号。这三个信号都有两个版本,一个是QString参数,另一个是int参数。如果用户选择或高亮显示一个pixmap,则只会发出int信号。每当更改可编辑组合框的文本时,都会发出editTextChanged() 信号。
当用户在一个可编辑的组合框中输入一个新字符串时,小部件可以插入它,也可以不插入它,它可以在几个位置插入它。默认策略为insertbottom,但可以使用setInsertPolicy() 对此进行更改。
可以使用QValidator将输入约束到可编辑的组合框;请参阅setValidator() 。默认情况下,接受任何输入。
例如,可以使用insert函数insertItem() 和insertItems() 填充组合框。可以使用setItemText() 更改项。可以使用removeItem() 删除项目,也可以使用clear() 删除所有项目。当前项的文本由currentText() 返回,编号项的文本由text() 返回。可以使用setCurrentIndex() 设置当前项。combobox中的项数由count() 返回;可以使用setMaxCount() 设置最大项数。可以使用setEditable() 进行编辑。对于可编辑的组合框,可以使用setCompleter() 设置自动完成,并且用户是否可以添加重复项是使用setDuplicatesEnabled() 设置的。
QComboBox使用模型/视图框架作为其弹出列表并存储其项。默认情况下,QStandardItemModel存储这些项,QListView子类显示popuplist。您可以直接访问模型和视图(使用model() 和view() ),但是QComboBox还提供了设置和获取项目数据的函数(例如setItemData() 和itemText() )。也可以设置新的模型和视图(使用setModel() 和setView() )。对于组合框标签中的文本和图标,使用模型中具有Qt::DisplayRole和Qt::DecorationRole的数据。请注意,不能更改view() 的SelectionMode,例如,使用setSelectionMode() 。
此枚举指定当用户输入新字符串时QComboBox应执行的操作。
Constant | Value | Description |
---|---|---|
NoInsert | 0 | 字符串不会插入到组合框中。 |
InsertAtTop | 1 | 字符串将作为组合框中的第一项插入。 |
InsertAtCurrent | 2 | 当前项将替换为字符串。 |
InsertAtBottom | 3 | 字符串将插入组合框中最后一项之后。 |
InsertAfterCurrent | 4 | 字符串插入在组合框中的当前项之后。 |
InsertBeforeCurrent | 5 | 字符串插入到组合框中当前项的前面。 |
InsertAlphabetically | 6 | 字符串按字母顺序插入组合框中。 |
此枚举指定添加新内容或内容更改时QComboBox的大小提示应如何调整。
Constant | Value | Description |
---|---|---|
AdjustToContents | 0 | 组合框将始终根据内容进行调整 |
AdjustToContentsOnFirstShow | 1 | 组合框在第一次显示时将根据其内容进行调整。 |
AdjustToMinimumContentsLengthWithIcon | AdjustToContentsOnFirstShow + 2 | 组合框将调整为图标的最小内容长度加上空间。出于性能原因,请在大型模型上使用此策略。 |
count: const int 组合框中的项数
默认情况下,对于空组合框,此属性的值为0。
Access functions:
currentData: const QVariant 当前项的数据
默认情况下,对于空组合框或未设置当前项的组合框,此属性包含无效的QVariant。
Access functions:
currentIndex: int 当前项的索引
插入或删除项目时,当前索引可能会更改。
默认情况下,对于空组合框或未设置当前项的组合框,此属性的值为-1。
Access functions:
Notifier signal:
currentText: QString 当前文本
如果组合框是可编辑的,则当前文本是行编辑显示的值。否则,如果组合框为空或未设置当前项,则为当前项的值或空字符串。
如果组合框是可编辑的,设置器 setCurrentText() 只调用setEditText() 。否则,如果列表中有匹配的文本,currentIndex将设置为相应的索引。
Access functions:
Notifier signal:
duplicatesEnabled: bool 是否允许输入重复项
请注意,总是可以通过编程方式将重复项插入到组合框中。
默认情况下,此属性为false(不允许重复)。
Access functions:
editable: bool 是否允许编辑
默认情况下,此属性为false。编辑的效果取决于插入策略。
注意:禁用可编辑状态时,将删除验证程序和完成程序。
Access functions:
Access functions:
frame: bool 是否使用框架绘制自身
如果启用(默认设置),组合框将在一个框架内绘制自身,否则组合框将在没有任何框架的情况下绘制自身。
Access functions:
iconSize: QSize 显示的图标的大小
除非显式设置,否则返回当前样式的默认值。此大小是图标可以具有的最大尺寸;较小尺寸的图标不会按比例放大。
Access functions:
insertPolicy: InsertPolicy 用于确定用户插入的项应显示在组合框中的位置的策略
默认值为insertbottom,表示新项目将出现在项目列表的底部。
Access functions:
maxCount: int 组合框中允许的最大项数
注意:如果将最大数量设置为小于组合框中当前项目的数量,则多余的项目将被截断。如果您在组合框上设置了外部模型,这也适用。
默认情况下,此属性的值是从可用的最高有符号整数(通常为2147483647)引申的。
Access functions:
maxVisibleItems: int 组合框屏幕上允许显示的最大大小(以项为单位)
默认情况下,此属性的值为10。
注意:对于QStyle::SH_ComboBox_Popup(如Mac样式或Gtk+样式)返回true的样式中的不可编辑组合框,忽略此属性。
Access functions:
minimumContentsLength: int 组合框中应包含的最小字符数
默认值为0。
如果此属性设置为正值,则minimumSizeHint() 和sizeHint() 会将其考虑在内。
Access functions:
modelColumn: int 模型中可见的列
如果在填充组合框之前设置,弹出视图将不受影响,并将显示第一列(使用此属性的默认值)。
默认情况下,此属性的值为0。
Access functions:
placeholderText: QString 设置未设置有效索引时显示的文本占位符
设置无效索引时,将显示占位符文本。在下拉列表中无法访问文本。在添加项之前调用此函数时,将显示占位符文本,否则,如果要显示占位符文本,必须以编程方式调用setCurrentIndex(-1)。设置空占位符文本以重置设置。
当QComboBox可编辑时,请改用QLineEdit::setPlaceholderText() 。
Access functions:
sizeAdjustPolicy: SizeAdjustPolicy 内容更改时组合框大小如何更改的策略
默认值为AdjustToContentsOnFirstShow。
Access functions:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
app.setApplicationName ("QComboBox");
// app.setStyleSheet ("QLabel{background:green}");
QWidget w;
w.resize (300,50);
QFrame frame1;
QFrame frame2;
QFrame frame3;
QGridLayout mainLayout(&w);
QComboBox widget1;
QComboBox widget2;
QComboBox widget3;
QCommonStyle cs;
for(int i=0; i < 20; i++){
widget1.addItem (cs.standardIcon ((QStyle::StandardPixmap)i), QString::number (i));
widget2.addItem (cs.standardIcon ((QStyle::StandardPixmap)(i+20)),QString::number (i+20));
widget3.addItem (cs.standardIcon ((QStyle::StandardPixmap)(i+40)),QString::number (i+40));
}
// 设置图标的最大尺寸
widget1.setIconSize (QSize(32,32));
widget2.setIconSize (QSize(32,32));
widget3.setIconSize (QSize(32,32));
QLabel label1("0-19");
QLabel label2("20-39");
QLabel label3("40-59");
label1.setAlignment (Qt::AlignCenter);
label2.setAlignment (Qt::AlignCenter);
label3.setAlignment (Qt::AlignCenter);
frame1.setFrameShape (QFrame::Panel);
frame2.setFrameShape (QFrame::Panel);
frame3.setFrameShape (QFrame::Panel);
QVBoxLayout *V1 = new QVBoxLayout(&frame1);
QVBoxLayout *V2 = new QVBoxLayout(&frame2);
QVBoxLayout *V3 = new QVBoxLayout(&frame3);
V1->addWidget (&label1);
V1->addWidget (&widget1);
V2->addWidget (&label2);
V2->addWidget (&widget2);
V3->addWidget (&label3);
V3->addWidget (&widget3);
// 布局加入,此时部件的父类是mainLayout
mainLayout.addWidget (&frame1,0,1);
mainLayout.addWidget (&frame2,0,2);
mainLayout.addWidget (&frame3,0,3);
w.show ();
app.exec();
return 0;
}
1.首先说一下前提 hadoop 已经正常启动,并且mysql驱动包已经导入好:(Hadoop 3.2.0 ,mysql 8.0, mysql 驱动8.0,Sqoop 1.4.7) 2.错误信息 Exception in thread "main" java.lang.NoClassDefFoundError: org/a..._at org.apache.sqoop.manager.mysqlmanager.initoptiondefaults(mysqlmanager.jav
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net下面的代码以连接本机的Oracle数据库为例,演示JDBC操作数据库的步骤。加载驱动。Class.forName("oracle.jdbc.driver.OracleDriver");创建连接。Connection con = Dr...
降幂公式:用大佬的Mod函数,就可以统统按第一种去考虑。大佬的证明下题是2019南京网络赛B最后求解的就是a^a^a.... 共b个a,%m的结果#include<bits/stdc++.h>#define il inline#define pb push_back#define ms(_data,v) memset(_data,v,sizeof(_data)..._欧拉降幂模板预处理
所有式样的Unix都提供管道,它由 pipe 函数创建,提供一个单路(单向)数据流。 原型如下:#include int pipe(int fd[2]); 该函数返回两个文件描述符:fd[0] fd[1]。前者打开用于读,后者打开来写。(都是站在进程的角度上来看读和写) 管道的典型用途是以下述方式为两个不同的进程(一个是父进程,一个是子进程)提供进程间的通信手段。首_linux 网络编程:进程间通信 环境搭建
小程序页面传参参数较多时:传递页面:encodeURIComponent(JSON.stringify(event.currentTarget.dataset.detail))接收页面:JSON.parse(decodeURIComponent(options.arrey))_小程序 参数太多
这本书对应python2的中文版书籍网上有很多,但是随后更新的python3的版本却微乎其微,只能从官网上的电子英文版开看了,反正也全当练习了。官网明确更新的几条观月NLTK 3.0的信息,间接说明这些可能很重要或者很常用,就像print对于python一样。NLTK also includes some pervasive changes:many types are initia...
题目描述:在长度为n的单调递增型数组a[n]中,1 <= a[i] <= 100,编写一个程序打印出和为m的所有组合。例如:a[] = {1,2,3,5,6},m=11,打印出5 62 3 61 2 3 5对于这道题,我的第一感觉就是道类似0-1背包问题,给出的物品中,选出所有刚好能装满背包的物品于是开始解决这道题就用回溯法//rem表示剩余的值,fl..._java 求一个数组里面所有和等于m的组合
LCD DSI协议 1. DSI 协议中 ,0x29 和 0x39 区别:在 Mipi 协议中,它俩都表示 长包(Long Packet)数据类型. 但是 Mipi DSI 的 Spec 中写着两者的区别 0x29 属于 Generic long write ,0x39 属于 DCS long write. DCS 系的读写命令,可带参数,常用于 LCD 初始化参数命令. Generic 系读写命令,是协议规范外的命令,通常是一些 IC 定制的,只要确保主机和外设同意这些数据格式即可,通..._total_bit_per_pixel
规则表达式在搜索模式串中可谓用途极广,那么他究竟通过什么算法达到那么大的威力呢?答案就是字符串的额“有限自动状态机”,确切的说是模式串的有限自动状态机。所谓模式串就是你感兴趣的特定字符串,比如在谋篇文章中搜索"bai",这是模式字符串。对于这种简单的串直接采用字符串匹配算法(例如KMP)之类的就可以解决了,采用KMP的时间复杂度是O(n+m),其中n是原串长度,m是模式串长度,如果m=O(
查询数据库表数量#查询MySQL服务中数据库表数据量SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES GROUP BY table_schema;#查询指定数据库表数量SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES WHERE table_schema = 'szdb'查询数据库中的字段,表中的字段#查询一个表中有多少字_ms sql数据库查询 有多少张表 及多少个字段
云南财经大学(YunnanUniversityofFinanceandEconomics,YNUFE),简称“云财大”,位于昆明市,是云南省重点大学、云南省高水平大学整体建设高校、全国大学生社会实践重点组织单位、全国深化创新创业教育改革示范高校、中国政府奖学金来华留学生接收院校,入选教育部第一批“香港与内地高等学校师生交流计划项目”、商务部国际商务官员研修基地、国家级大学生创新创业训练计划;【拟录取23人,均分280】【含1一志愿+22调剂】【0一志愿进入复试,接受调剂】..._云南财经大学计算机技术考研
昨天捣鼓好了页面框架,得到了园友的帮忙,在这里 说声 “谢谢”…… :)框架好了,当然要实现效果。cs的效果如下,当然我们这边开发bs也要求这样。把需求的效果贴出:大致可以看出 一个主页面 嵌套tab页,再在子页面中嵌套一个panel和tab页面ext.net 完全可以搞定,昨天我们的首页框架主要是前台aspx生成的。为了以后的扩展性,我们今天把显示层用..._ext.net tabpanel 不切换获不到checkbox的值