连接 -> 窗口上没有这样的插槽
Connect -> No such slot on Window
我正在创建一个Qt Designer力计算程序,原理是在QDoubleSpinBox上给出输入值并通过一种方法进行计算,当我尝试连接按钮以激活计算时,我得到"没有这样的插槽错误">
我确保在 .h 文件中声明公共插槽,它仍然没有给出任何东西,函数"Lunghezza"是进行计算的函数
头文件 : 窗口.h
class Window;
}
class Window : public QMainWindow
{
Q_OBJECT
public:
explicit Window(QWidget *parent = nullptr);
~Window();
public slots:
void Lunghezze(double Longeur1 , double Longeur2 , double Largeur , double Hauteur,double *T1 ,double *T2 , double *T3 ,double *T4);
private:
Ui::Window *ui;
};
我的 cpp 文件窗口.cpp
QMainWindow(parent),
ui(new Ui::Window)
{
ui->setupUi(this);
double L1=ui->L1ValF->value();
double L2=ui->L2ValF->value(); // Getting the value from QDoubleSpinBox
double l=ui->lValF->value();
double H=ui->HValF->value();
double F=ui->FValF->value();
connect(ui->Calculate, SIGNAL(clicked()),SLOT(Lunghezze(L1,L2,l,H,F,0,0,0,0)));
}
Window::~Window()
{
delete ui;
}
void Window::Lunghezze(double Longeur1 , double Longeur2 , double Largeur , double Hauteur,double *T1 ,double *T2 , double *T3 ,double *T4){
float C1=hypot(Longeur1,Largeur/2);
float C2=hypot(Longeur1,Largeur/2);
float C3=hypot(Longeur2,Largeur/2);
float C4=hypot(Longeur2,Largeur/2);
// CALCOLO LUNGHEZZA FILI
*T1=hypot(C1,Hauteur);
*T2=hypot(C2,Hauteur);
*T3=hypot(C3,Hauteur);
*T4=hypot(C4,Hauteur);
}
我也已经删除了moc和.o文件,但仍然收到此消息!
QObject::连接:没有这样的插槽 窗口::Lunghezze(L1,L2,l,H,F,0,0,0,0) 在。。/calculo16/window.cpp:23 QObject::connect: (发件人名称:"计算") QObject::连接: (接收方名称:">
窗口")
使用 lambda 和现代形式的 QObject 插槽连接:
connect(ui->Calculate, &QPushButton::clicked, this, [=]() {
Lunghezze(L1,L2,l,H,F,0,0,0,0);
});
请注意,这将捕获 L1,L2 的值,...在施工时。如果要在单击按钮时获取它们,请将...->value
调用移动到 lambda 内。
或者,添加一个新插槽(无参数)到Window
:
void Window::on_Calculate_clicked() {
double L1=ui->L1ValF->value();
double L2=ui->L2ValF->value();
double l=ui->lValF->value();
double H=ui->HValF->value();
double F=ui->FValF->value();
Lunghezze(L1,L2,l,H,F,0,0,0,0);
}
此名称应启用信号插槽自动连接,但您始终可以手动连接它。
相关文章:
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 如何在没有信号的情况下从C++执行QML插槽
- 从Q_INVOKABLE功能或插槽中更改QQuick图像源
- 升压信号2将插槽传递到成员功能以断开连接
- 如何在qt中将信号和插槽与另一个对象连接 --解决了
- C++ 信号和插槽不工作:插槽不响应事件
- NS3 插槽混淆(需要帮助理解)
- QObject::连接无法将信号连接到*this*对象的插槽
- QT 插槽未在主线程上调用
- 通过插槽和信号在不同线程中的两个qt对象之间进行通信
- 控制带有信号/插槽的Qt QML滑动视图
- Qt 信号/插槽问题
- QT5 信号不会激活插槽内的功能
- Qt5:连接:如果插槽的参数少于信号,如何使用"连接"
- 需要实例化不同类/对象并在启动时确定的硬件插槽的设计模式
- Qt信号和插槽如果从QRunnable或其他线程调用,则不起作用
- Qt插槽调用了两次
- C++Qt信号和插槽
- 从插槽调用 QApplication::p rocessEvents 会导致再次调用同一插槽
- 如何使用 signals.boostv2 调用特定插槽