C++ 用qt提升类捕捉信号
几天前开始学习Qt的基础知识,我的问题包括: -Qt设计器(UI) -晋升班 有了Qt designer(我相信甚至没有它),我们可以“捕捉信号”或创建事件,我们可以像这样创建一个私有插槽:“on_u[widget_name][signal_name]”。下面的代码可以工作,我在这里没有问题:C++ 用qt提升类捕捉信号,c++,qt,C++,Qt,几天前开始学习Qt的基础知识,我的问题包括: -Qt设计器(UI) -晋升班 有了Qt designer(我相信甚至没有它),我们可以“捕捉信号”或创建事件,我们可以像这样创建一个私有插槽:“on_u[widget_name][signal_name]”。下面的代码可以工作,我在这里没有问题: #include "custom.h" #include "ui_custom.h" #include <QDebug> CustomWidget::CustomWidget(QWidget
#include "custom.h"
#include "ui_custom.h"
#include <QDebug>
CustomWidget::CustomWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::CustomWidget)
{
ui->setupUi(this);
// ui->horizontalLayout->setContentsMargins(0,0,0,0);
// ui->horizontalLayout->setAlignment(Qt::AlignLeft);
}
CustomWidget::~CustomWidget()
{
delete ui;
}
void CustomWidget::on_widthInput_valueChanged(int value){
qDebug() << "test";
}
#包括“custom.h”
#包括“ui_custom.h”
#包括
CustomWidget::CustomWidget(QWidget*父项):
QWidget(母公司),
ui(新ui::CustomWidget)
{
用户界面->设置用户界面(此);
//用户界面->水平布局->设置内容边缘(0,0,0,0);
//ui->horizontalLayout->setAlignment(Qt::AlignLeft);
}
CustomWidget::~CustomWidget()
{
删除用户界面;
}
void CustomWidget::on_width输入值已更改(int值){
qDebug()如果你想在派生类中重新实现上的
,只需在基类中将其声明为virtual
,或者如果你想实现其他一些,请更详细地描述。我又添加了一段来解释。提升的类在Qt设计器中是“children”,但它们不是“children”在C++类树中,所以我不是在讨论继承对象。我想你应该阅读关于代码> QT信号/时隙< /> >,它们不是通过定义具有特殊名称的函数来连接的,而是通过调用connect
函数来连接的,在您的情况下,connect
位于自动生成的代码中,这就是为什么看不到它的原因。因此,您只需手动调用connect
,或者使用virtual
重用已有的连接即可