每当我使用信号/插槽编辑器对话框时,我必须从现有的插槽列表中进行选择。所以问题是如何创建自定义命名槽?

有帮助吗?

解决方案

不幸的是,这在Qt4中是不可能的。

在Qt3中,您可以创建自定义插槽,然后在ui.h文件中实现。但是,Qt4不使用此文件,因此不支持自定义插槽。

QtForum

其他提示

右键单击主窗口并选择“更改信号和插槽”。并添加一个新插槽。 它将出现在信号槽编辑器中。

我可以通过以下方式完成:

在MainWindow.h中,添加以下行:

public slots:
     void example();
在MainWindow类中

在MainWindow.cpp

void MainWindow::example() {
     <code>
}

这是不可能的,因为这意味着你要向现有的Qt类添加一个插槽,比如 QPushButton ,这不是真正的方法。

您应该通过继承现有的 QWidget 来创建自己的 QWidget 。然后将其作为插件按照建议集成到Qt Designer中。拥有自己的类允许您根据需要添加/修改可用的信号/插槽。

不要忘记插槽自动连接功能。有一些缺点,比如重命名你的小部件时必须重命名你的功能,但是我们在公司里经常使用这些功能。

您可以使用

的魔术插槽格式
void on_objectName_signal() {
// slot code here, where objectname is the Qt Designer object name
// and the signal is the emission
}

此方法的连接由 connectSlotsByName 并且每当发出信号时,都会调用此插槽。

也许它会有所帮助。

默认情况下,您必须从现有的插槽列表中进行选择。但您可以通过右键单击设计器右侧列表中的对象来添加插槽,然后选择“插槽/信号”。并添加您的自定义插槽/信号。之后,您可以在信号/插槽编辑器中选择它。

按右键单击小部件

将小部件升级为您定义的类

再次按右键单击小工具

你会看到信号和插槽是可编辑的

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top