【问题标题】:QT5 mainwindow slots not being discovered未发现 QT5 主窗口插槽
【发布时间】:2021-10-22 18:06:55
【问题描述】:

根据我正在遵循的教程,我将我想在我的小部件中调用的函数放在 public: Q_SLOTS in mainwindow.h 中。当我在设计模式下打开 mainwindow.ui,然后单击编辑->编辑信号/插槽,然后左键单击一个按钮并拖动到窗口,我没有看到将我创建的信号与其中一个功能相关联的选项我指定了自己。

主窗口.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

public Q_SLOTS:
    void SendBtnClicked();
    void TypingChanged();
    void LoginClicked();
    void OnMessageReturn();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

【问题讨论】:

  • 如果我没记错的话...屏幕截图中的菜单用于将按钮上的操作直接连接到 MainWindow 的插槽。要将按钮上的操作连接到您的功能,请右键单击按钮,“转到插槽”,选择适当的操作并单击确定。这将创建一个适当命名的函数。信号槽函数按名称匹配。
  • 使用连接。在 cpp 中, connect(ui->pb_name , &QPushbutton:: clicked, this ,&Mainwindow:: 插槽名称);

标签: c++ qt user-interface qt-creator


【解决方案1】:

如果您想从那里将​​信号连接到您的插槽。您应该将您的广告位添加到该广告位列表中。

比如我在mainwindow.h中写了这个槽

private slots:
    void  myExampleSlot();

打印一些东西。

void  MainWindow::myExampleSlot()
{
    qDebug() << "I am here";
}
  1. 按编辑,然后添加您的插槽功能:

  1. 然后在插槽列表中找到它并选择它。

输出:

【讨论】:

    猜你喜欢
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 2012-12-15
    相关资源
    最近更新 更多