首页 > 其他分享 >QT QComboBox信号与槽

QT QComboBox信号与槽

时间:2022-12-20 21:56:52浏览次数:42  
标签:选项 QT int activated QComboBox QString 信号

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)信号。

  注意事项:即便这次选中的选项和上次选中的是同一个选项,点击后依然会发出该信号。

3. currentIndexChanged(int)、currentIndexChanged(QString)和currentTextChanged(QString)

  当前索引发生改变时触发,这是activated的升级版,与activated不同的是只有激活的选项与上次不同时才触发。

  补充:我以为currentTextChanged是选中的选项的文本内容与上次不同时触发, 因此我制作了如下图的选项。故意将两个选项的文本设置成一样的,但事实上激活的选项在两个“hello”选项上变化时也能触发currentTextChanged信号,因此在我的视角上看这三个信号的触发条件是一样的。但去查资料上有人说如果通过程序修改文本内容就不一样,那种情况以后再讨论。

  

 

4 . editTextChanged(QString)、textActivated(QString)、textHighlighted(QString)

  暂不讨论。

 

  文章写的很粗糙,主要是想当记个笔记,以后有了时间和机会再完善。

 

标签:选项,QT,int,activated,QComboBox,QString,信号
From: https://www.cnblogs.com/Suzkfly/p/16995095.html

相关文章