首页 > 解决方案 > 如何使用 QT Designer 和 Visual Studio 连接 Qt 信号和插槽

问题描述

我正在使用 Qt Designer 来设计我的应用程序,其中包含一个“加载文件” QPushButton(已提升为 custom loadfile.h)以及一个 QOpenGLWidget (已提升为 custom OGLWidget.h)。

我想拥有它,这样当我单击“加载文件”按钮时,它会向我的OGLWidget班级中的一个插槽发送一个信号,该插槽会弹出一个对话框并加载文件。

我首先进入 Qt Designer 中的信号/插槽编辑模式,并将按钮连接到openglwidgetwithclicked()作为信号和新添加的(来自 Qt Designer)populate_mesh_from_obj()

然后我做了一个函数:

void OGLWidget::populate_mesh_from_obj()
{
    exit(0);
}

作为测试并在标题中放置:

public slots:
   void populate_mesh_from_obj();

现在在我的脑海里,我想:

  1. 该信号clicked()已由 Qt 魔术实现
  2. 该插槽已由我实现
  3. Qt Designer 已将它们连接到某个地方

所以对我来说这应该有效。任何想法为什么它没有?

标签: c++qt

解决方案


你必须手动连接它们..

connect(ui->button, &QPushButton::clicked, yourGlPointer, &OGLWidget::populate_mesh_from_obj);

推荐阅读