如何创建在QT4设计师定制插槽?(How do I create a custom slot in

2019-09-03 08:31发布

每当我使用信号/槽的编辑对话框中,我从槽的现有列表中选择。 所以,问题是我如何创建一个名为插槽习惯吗?

Answer 1:

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

在QT3你可以创建自定义的插槽,在那里,然后在ui.h文件中实现。 然而,这样的定制插槽,不支持的Qt4不使用此文件。

有这个问题的一些讨论过的QtForum



Answer 2:

这似乎在Qt Designer中4.5.2的版本是可能的,但它不能从主窗口中的信号/槽编辑坞的小部件来完成。

这是对我工作

  1. 切换到编辑信号/插槽模式(F4)
  2. 拖动并从作为发射信号,向其中是接收信号的插件的插件下降。
  3. 出现一个配置连接对话框,示出了用于发射插件的信号,以及用于接收插件的槽。 单击编辑右侧的插槽栏下方。
  4. 一个信号/出现ReceivingWidget对话框的插槽 。 在这里它可以点击加号图标下方的槽添加任何名称的新插槽。
  5. 然后,您可以回去,并连接到您的新时段,在配置连接对话框,或实际上,信号/槽编辑dockwidget回到主窗口。

警告:我使用PyQt的,我只尝试了使用在Python以这种方式添加插槽,而不是从C ++,所以你的里程可能会有所不同?



Answer 3:

右键单击主窗口中,选择“更改信号和槽”,并增加了新的插槽。 它会出现在你的信号插槽编辑器。



Answer 4:

我能够通过做到这一点:

在MainWindow.h,添加一行:

public slots:
     void example();

在主窗口类。

在MainWindow.cpp

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


Answer 5:

这似乎不是一个简单的方法就可以了。

设计者只允许促进现有的小部件到您的自定义部件。 但它不允许你连接的信号和类促进小部件的插槽。

这是可能的方式是创建设计师插件如这里所描述和在它后面的页面。

行动的正常过程是推动一个小部件到您自己的类,然后手动将其在自己的代码连接。 这个过程被描述在这里



Answer 6:

这是不可能做到这一点,因为这意味着你将一个插槽添加到像现有的Qt类QPushButton这是不是真的要走的路。

您应该创建自己QWidget通过继承现有的最终。 然后将其集成到Qt设计作为一个插件的建议。 拥有自己的类允许你添加/ modifiy只要你想的信号/插槽可用。



Answer 7:

不要忘了槽的自动连接功能。 有几个缺点,就像如果你重命名你的部件重命名功能,但是我们使用那些有很多在我的公司。



Answer 8:

您可以使用的魔法槽格式

void on_objectName_signal() {
// slot code here, where objectname is the Qt Designer object name
// and the signal is the emission
}

该方法的连接是通过该方法建立的connectSlotsByName并且每当信号被发射时,该槽被调用。



Answer 9:

也许这会帮助你。

默认情况下,你必须从槽的现有列表中选择。 但是你可以通过右键点击你在列表中设计师右侧对象添加的时段,选择“槽/信号”,并添加自定义插槽/信号。 在这之后,你可以在信号/插槽编辑器中选择它。



Answer 10:

单击右键按钮控件

推动构件到你定义的类

再次单击右键按钮控件

你会看到信号和槽可编辑



文章来源: How do I create a custom slot in qt4 designer?