1. QComboBox简介
QComboBox就是下拉框,外观如下图所示:
2. QComboBox信号
在界面设计窗口上随便找一个下拉框控件,鼠标右键->转到槽,可以看到QComboBox支持的信号有:
各信号举例说明:
2.1 highlighted(QString)和highlighted(int)
highlighted意为高亮,当把下拉框点开后,鼠标在各个选项中移动(高亮选项发生变化)时会发出这两个信号。如下图,如果希望得到变化后选项的索引值,就使用highlighted(int)信号,那么槽函数接收到的参数就为2(从0开始),如果希望得到文本,就用highlighted(QString)信号,那么槽函数接收到的参数就是“我是3”这个字符串。
注意事项:选中某个选项后,再次点开下拉,这个动作不会引发该信号,因为高亮的选项并没发生变化。但是软件打开后第一次点开下拉会发出一次该信号,可以理解为:软件初始化之后即便默认选项是“我是1”,但是这个选项并未高亮,下拉之后高亮了就会发出该信号。
2.2 activated(QString)和activated(int)
activated意为激活,当把下拉框点开后,鼠标选中一个选项后点击即可发出该信号,同样的,如果希望得到选中的选项索引值,就使用activated(int)信号,如果希望得到文本,就用activated(QString)信号。
注意事项:即便这次选中的选项和上次选中的是同一个选项,点击后依然会发出该信号。
2.3 currentIndexChanged(int)、currentIndexChanged(QString)和currentTextChanged(QString)
当前索引发生改变时触发,这是activated的升级版,与activated不同的是只有激活的选项与上次不同时才触发。
补充:我以为currentTextChanged是选中的选项的文本内容与上次不同时触发, 因此我制作了如下图的选项。故意将两个选项的文本设置成一样的,但事实上激活的选项在两个“hello”选项上变化时也能触发currentTextChanged信号,因此在我的视角上看这三个信号的触发条件是一样的。但去查资料上有人说如果通过程序修改文本内容就不一样,那种情况以后再讨论。
2.4 editTextChanged(QString)、textActivated(QString)、textHighlighted(QString)
暂不讨论。
文章写的很粗糙,主要是想当记个笔记,以后有了时间和机会再完善。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!