【问题标题】:Qt Designer: how to add custom slot and code to a buttonQt Designer:如何将自定义插槽和代码添加到按钮
【发布时间】:2011-11-01 09:59:10
【问题描述】:

我使用 Qt4 Designer,我希望当我单击“是”按钮时,一些代码将执行。当我点击“否”时,将执行一些其他代码。我该怎么做?

【问题讨论】:

  • 嗯!有人可以提示这个特定问题在 Qt 设计器文档中的哪个位置得到解决?我自己找不到。而且它不是信号/插槽的东西
  • @joaquin:它信号和插槽的东西,因为他所要做的就是加载用户界面,并将插槽连接到相关按钮。这些是真正的 Qt 基础知识。
  • @lunaryorn 谢谢。抱歉,您如何创建插槽“my_custom_function”以便将其绑定到 Signal/Slot 编辑器上 pushButton 的 clicked() 信号。也许我错过了一些东西,但我在设计器文档中找不到方法,我刚刚找到了如何绑定发送者和接收者预定义的信号和插槽。你能给出一个链接并以这种方式回答OP问题吗?

标签: python qt4 qt-designer


【解决方案1】:
  1. 点击Edit Signal/Slots工具。

  2. 为您的按钮创建连接。为此,请使用鼠标左键按下设计器中的按钮。将鼠标移动到主窗口中的某个位置以创建与主窗口的连接(它就像一条带有接地连接的红线)。

  3. 当您松开鼠标按钮时,会出现Configure Connection 对话框。

  4. 在此对话框中,选择左侧文本控件(发送方)中的一个信号,例如pressed()

  5. 然后在右侧文本控件(接收器)中按edit。出现Signals/Slots of MainWindow 的对话框。

  6. 在插槽面板中添加一个新插槽(绿色十字)。出现文本slot1()。双击它以编辑该行并写下您的函数名称doit_when_yes_ispressed()。接受。

  7. 现在在Configure Connection 对话框中,您将在右侧文本控件中看到您的函数。选择并接受。

  8. 现在您可以在设计器中看到小部件中的信号和功能。

【讨论】:

  • 谢谢,正是我想要的 :) 你能从设计师那里编辑函数还是需要先生成代码?
  • 不,您不能从设计器编辑槽。在设计器中,您只需定义信号将连接到的插槽的名称。执行 uic 时,自动生成的 ui_filename.h 包括信号和插槽之间的连接。请注意,即使插槽不存在,也不会出现编译错误。所以你必须在你的.h文件中添加一个槽(最好是私有的)并在.cpp文件中实现它对于Python类似。
  • @webclectic 如何在pyqt中添加我需要做的事情?
  • 嗨,我使用的是 QT 设计器 4.8.6,在 Configure Connection 窗口中,Edit 选项显示为灰色(已禁用且无法单击)。有谁知道为什么会出现这种奇怪的行为?
  • 是否可以通过鼠标单击自动将插槽(在设计器中定义)添加到代码(.h 和 .c)中?
【解决方案2】:
  • 右键单击您的小部件
  • 选择“转到插槽...”
  • 选择一个信号并点击确定

您对该信号的自定义槽声明和定义将添加到 *.cpp 和 *.h 文件中。它的名字会自动生成。

更新: 抱歉,我没有注意到问题是关于 Python 和 QtDesigner 本身的,我在想 QtCreator IDE 中的设计器模式。但是,这对于正在寻找 Qt/C++ 信息的人可能仍然有用,所以我留下答案。

【讨论】:

    猜你喜欢
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多