以下是一些常见的内置信号的示例:
clicked()
:按钮(QPushButton
、QToolButton
等)被点击时触发的信号。
pressed()
和 released()
:按钮被按下和释放时分别触发的信号。
textChanged(const QString &text)
:文本输入框(QLineEdit
、QPlainTextEdit
等)中的文本内容发生改变时触发的信号。
currentIndexChanged(int index)
:下拉列表框(QComboBox
)或选项卡控件(QTabWidget
)的当前索引发生改变时触发的信号。
activated(const QString &text)
:菜单项(QAction
)或列表项(QListWidgetItem
)被选择或激活时触发的信号。
valueChanged(int value)
:滑动条(QSlider
、QDial
)或进度条(QProgressBar
)的值发生改变时触发的信号。
hovered()
:鼠标悬停在某个部件上时触发的信号,例如按钮、标签等。
itemClicked(QListWidgetItem *item)
:列表控件(QListWidget
)中的列表项被点击时触发的信号。
这只是一小部分常见的内置信号示例,Qt 框架提供了更多的信号供不同的类和对象使用。此外,开发者还可以自定义信号,以满足特定需求。
需要注意的是,在使用信号时,通常会将 SIGNAL()
宏用于连接信号,如 connect(sender, SIGNAL(signalName()), receiver, SLOT(slotName()))
,但从 Qt 5 开始,也可以使用新式连接语法来替代宏的使用。
SIGNAL(triggered(bool))
是一个信号的宏,用于指定信号的参数类型和参数列表。在 Qt 的信号与槽机制中,通过使用这个宏来定义信号。
具体来说,triggered(bool)
表示一个带有一个布尔型参数的信号。在这种情况下,该信号通常用于表示某个动作或操作被触发的事件。当用户执行相应的操作时,例如点击菜单项、按下工具栏按钮等,会发出这个信号,并将布尔值作为参数传递给连接的槽函数。
示例中的 connect
函数中使用了 SIGNAL(triggered(bool))
来指定信号的类型。这意味着连接的槽函数需要接受一个布尔型参数,以处理触发事件时的相关操作。
注意:从 Qt 5 开始,推荐使用新的语法来连接信号与槽函数,称为新式连接(New-Style Connections),可以不再使用 SIGNAL
和 SLOT
宏。新式连接使用更直观的函数指针语法,如:
connect(sender, &Sender::signalName, receiver, &Receiver::slotName);
其中,signalName
是信号的名称,slotName
是槽函数的名称。
triggered
是一个信号,它在许多 Qt 类中被使用。具体来说,triggered
信号通常用于表示某个动作或操作被触发的事件。
当用户执行相应的操作时,例如点击菜单项、按下工具栏按钮等,会发出 triggered
信号。这个信号可以被连接到槽函数,以便在触发事件时执行相关的操作。
以下是一些常见的使用 triggered
信号的类和对象:
QAction
:当菜单项或工具栏按钮被点击时,会发出 triggered
信号。QShortcut
:当快捷键组合被触发时,会发出 triggered
信号。QSystemTrayIcon
:当系统托盘图标上的菜单项被点击时,会发出 triggered
信号。通过连接 triggered
信号和相应的槽函数,可以实现在特定操作被触发时执行自定义的功能或逻辑。例如,可以在菜单项被点击时打开新窗口、保存数据,或者在工具栏按钮被点击时切换视图等。
需要注意的是,从 Qt 5 开始,推荐使用新式连接语法来连接信号与槽函数,而不再使用 SIGNAL
和 SLOT
宏。示例代码如下:
connect(action, &QAction::triggered, receiver, &Receiver::slotFunction);
其中,action
是触发 triggered
信号的对象,receiver
是接收信号的对象,slotFunction
是槽函数的名称。