0

我正在尝试调用display_txt()从 my_class 调用的方法。此方法应该更改标签中的某些文本。但是该方法不会对 ui 进行任何更改。我知道该方法由于qDebug(). 不会发生错误,但标签不会更改为“文本已更改”。display_txt()从主小部件类调用时工作正常并更改标签。论坛中有类似的问题,但我无法使用这些解决方案。当按下按钮 btn 时,我制作了一个对象。

这是代码:

小部件.h

#include <QWidget>
namespace Ui {
class Widget;
}

class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
void display_txt();

private slots:
void on_btn_clicked();

private:
Ui::Widget *ui;
};

my_class.h

#include <QWidget>
#include "widget.h"

class my_class : public QWidget
{
Q_OBJECT
public:
explicit my_class(QWidget *parent = 0);
void test(Ui::Widget ui1);
signals:
private:
Widget *wo = new Widget;
};

小部件.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include "my_class.h"

Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);

//display_txt();
qDebug() << "Widget object created";

}
void Widget::display_txt(){
ui->lbl->setText("text changes!!!!!");
qDebug() << "display_txt() method finished";

}
void Widget::on_btn_clicked()
{
my_class mc;
}

my_class.cpp

#include "my_class.h"
#include "QDebug"

my_class::my_class(QWidget *parent) : QWidget(parent)
{
qDebug() << "myclass ran";
wo->display_txt();
}
4

0 回答 0