qq_17352261 2020-04-18 21:18 采纳率: 100%
浏览 547
已采纳

Qt连接槽函数没有效果?

主窗口:QtGuiApplication1

QtGuiApplication1.h

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_QtGuiApplication1.h"

class QtGuiApplication1 : public QMainWindow
{
    Q_OBJECT

public:
    QtGuiApplication1(QWidget *parent = Q_NULLPTR);
public slots:
    void on_SaleButton_clicked();
    void Receive(int);


private:
    Ui::QtGuiApplication1Class ui;
};

QtGuiApplication1.cpp

#include "QtGuiApplication1.h"
#include "Sale.h"
#include <qmessagebox.h>
QtGuiApplication1::QtGuiApplication1(QWidget* parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
}
void QtGuiApplication1::on_SaleButton_clicked()//跳转到收银模块
{
    auto sale=new Sale();
    connect(sale, SIGNAL(Send(int)), this, SLOT(Receive(int)));//连接槽函数
    sale->show();
}

void QtGuiApplication1::Receive(int a)
{
    QMessageBox messageBox(QMessageBox::Information, "提示","创建了子窗口", QMessageBox::Yes, NULL);
}

子窗口Sale

Sale.h

#pragma once

#include "ui_Sale.h"
#include <QtWidgets/QMainWindow>

class Sale : public QMainWindow
{
    Q_OBJECT

public:
    Sale(QWidget* parent = Q_NULLPTR);
signals:
    void Send(int);
private:
    Ui::Sale ui;
};

Sale.cpp

#include "Sale.h"
Sale::Sale(QWidget* parent ):QMainWindow(parent)
{
    ui.setupUi(this);
    emit Send(1);
}

我的想法是点击主窗体的SaleButton按钮显示子窗口,同时主窗口弹出对话框,但是能显示子窗口,并没有弹出对话框,槽函数是无效的

  • 写回答

1条回答 默认 最新

  • 非弋 2020-04-27 21:02
    关注
    void QtGuiApplication1::on_SaleButton_clicked()//跳转到收银模块
    {
        auto sale=new Sale();   // 在Sale的构造函数中emit Send(1);这时信号槽都还没有绑定
        connect(sale, SIGNAL(Send(int)), this, SLOT(Receive(int)));//连接槽函数
        sale->show();
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器