2008-10-03 72 views

回答

4

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

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

上有QtForum

+0

了Qt4设计者支持读取在从QT3移植形式创建的定制槽。它给了我这种印象,也有可能创造一个。 – user24560 2008-10-03 11:18:13

+0

请参阅下面的raigon评论,这是目前可能的。 – OliJG 2013-05-31 08:44:21

3

这个问题上的一些讨论,这似乎不是一个简单的方法就可以了。

设计师只允许您将现有的小部件提升到您自己的自定义小部件。但它不允许您连接提升小部件类的信号和插槽。

这是可能的方式是为设计者创建一个插件,如described here以及随后的页面。

正常的行为是将小部件提升到自己的类,然后在自己的代码中手动连接它。这个过程描述如下here

2

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

你最终应该创建自己的QWidget子类化现有的。然后按照建议将其作为插件集成到Qt Designer中。有了自己的课程,您可以根据需要添加/修改可用的信号/插槽。

2

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

2

可以使用的

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

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

28

在Qt Designer 4.5.2版本中,这似乎是可行的,但是不能从在主窗口的Signal/Slot Editor dock-widget中完成。

这对我来说

  1. 切换到Edit Signals/Slots模式(F4)
  2. 将它从它发出信号,以这是接收信号的插件的窗口小部件掉落什么工作。
  3. A 配置连接对话框出现,显示发出小部件的信号以及接收小部件的插槽。点击编辑...在右侧的插槽列下方。
  4. A 信号/插槽的ReceivingWidget对话框出现。在这里可以点击插槽下方的加号图标来添加任何名称的新插槽。
  5. 然后,您可以返回并连接到配置连接对话框中的新插槽,或确实在主窗口中的Signal/Slot Editor dockwidget中。

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

+3

“配置连接”对话框中的两个“编辑...”按钮都始终显示为灰色。 – James 2009-11-07 21:27:07

1

也许它会帮帮我。

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

0

通过右键

点击widget促进构件到你定义

一类通过右键单击窗口小部件再次

你会看到信号和槽可编辑

26

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

4

我能够通过做到这一点:

在MainWindow.h,添加一行:

public slots: 
    void example(); 

在主窗口类。

在MainWindow.cpp

void MainWindow::example() { 
    <code> 
} 
相关问题