Qt 更改另一个类的标签文本

亚历山大·索利尔

我正在尝试使用 Qt 通过 Class B 更改 Class A 的标签文本,但我无法使其正常工作,这是我的代码:

A类:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "loldata.h"

using namespace std;

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

    LoLData *lold = new LoLData();

    QObject::connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(updateData()));
    QObject::connect(lold, SIGNAL(updatePlayerID(QString)), ui->label, SLOT(setText(QString)));
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::updateData()
{
    LoLData summoner;
    summoner.getSummonerData("Snylerr");
}

A类:(.h)

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QObject>
#include <string>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void updateData();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

B类:

#include "loldata.h"
#include "mainwindow.h"

using namespace std;

int LoLData::getSummonerData(QString playerName)
{
    emit updatePlayerID("playerName");
    return 0;
}

B类:(.h)

#ifndef DEF_LOLDATA
#define DEF_LOLDATA

#include <QApplication>
#include <QObject>
#include <string>

class LoLData : public QObject
{
    Q_OBJECT

public:
    int getSummonerData(QString playerName);

signals:
    void updatePlayerID(QString playerName);

private:
};

#endif

你可以看到我尝试使用插槽和信号,但标签的文本没有改变,我在互联网上看到了很多例子,但我无法让它们工作 感谢您的回复。

埃尔文·西拉吉

您正在LoLData此处创建一个新实例

void MainWindow::updateData()
{
    LoLData summoner;
    summoner.getSummonerData("Snylerr");
}

这个LoLDatanamed实例summoner没有连接到你的标签setText插槽。

LoLData *lold = new LoLData();- 此实例LolData连接到您标签的setText插槽。

你应该怎么做?这取决于你想完成什么:

  1. summoner通过插入QObject::connect(&summoner...) inside yourupdateData` 方法将您的实例连接到标签

  2. 或者你不实例化一个新LolData变量并lold在你的updateData函数中使用

    void MainWindow::updateData() { lold->getSummonerData("Snylerr"); }

同样在这种情况下,您必须将其lold作为成员变量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Qt / C ++:从另一个类获取Ui QLineEdit文本

来自分类Dev

从另一个类调用Qt方法?

来自分类Dev

从另一个类调用Qt方法?

来自分类Dev

Qt - 另一个类中的主窗口类对象不能正常工作

来自分类Dev

从QT的MainWindow中的另一个函数更新标签

来自分类Dev

如何在Qt中的另一个类中发出信号?

来自分类Dev

调整来自QT中从QWindow继承的另一个类的事件的大小

来自分类Dev

Qt5如何从另一个类调用QApplication?

来自分类Dev

QT C ++-如何在另一个类中引用窗口小部件

来自分类Dev

Qt无限循环在另一个线程

来自分类Dev

在另一个中显示 QT UI

来自分类Dev

创建一个类的多个实现,一个实现发送Qt信号,另一个实现直接与硬件一起使用

来自分类Dev

C#-从另一个类更改标签文本

来自分类Dev

另一个项目的Qt包含类(无法打开包含文件:'foo.h')

来自分类Dev

在QT中一个QToolButton切换到另一个

来自分类Dev

如何从另一个Java类(意味着在控制器之外)更改.fxml文件的标签文本?

来自分类Dev

从另一个类(B类)更改类(A类)中的文本

来自分类Dev

在嵌套了另一个标签的HTML标签内更改文本

来自分类Dev

如何在Qt中将拖放小部件实现到另一个容器?

来自分类Dev

Qt5代表另一个对象发出信号

来自分类Dev

Qt中的slot函数是否在另一个线程上运行?

来自分类Dev

Qt:在另一个QGraphicsItem C ++中限制QGraphicsItem的可移动区域

来自分类Dev

使用Python加入Qt Designer中的另一个窗口

来自分类Dev

我如何在另一个线程Qt中显示MessageBox

来自分类Dev

Qt图形被另一个遮住,但仍会导致绘画更新

来自分类Dev

在Qt中将小部件居中放置在另一个小部件中

来自分类Dev

另一个小部件Qt中的小部件

来自分类Dev

Qt5-QML:在嵌套循环中时,ColumnLayout覆盖另一个ColumnLayout

来自分类Dev

如何在Qt中管理另一个窗口?

Related 相关文章

  1. 1

    Qt / C ++:从另一个类获取Ui QLineEdit文本

  2. 2

    从另一个类调用Qt方法?

  3. 3

    从另一个类调用Qt方法?

  4. 4

    Qt - 另一个类中的主窗口类对象不能正常工作

  5. 5

    从QT的MainWindow中的另一个函数更新标签

  6. 6

    如何在Qt中的另一个类中发出信号?

  7. 7

    调整来自QT中从QWindow继承的另一个类的事件的大小

  8. 8

    Qt5如何从另一个类调用QApplication?

  9. 9

    QT C ++-如何在另一个类中引用窗口小部件

  10. 10

    Qt无限循环在另一个线程

  11. 11

    在另一个中显示 QT UI

  12. 12

    创建一个类的多个实现,一个实现发送Qt信号,另一个实现直接与硬件一起使用

  13. 13

    C#-从另一个类更改标签文本

  14. 14

    另一个项目的Qt包含类(无法打开包含文件:'foo.h')

  15. 15

    在QT中一个QToolButton切换到另一个

  16. 16

    如何从另一个Java类(意味着在控制器之外)更改.fxml文件的标签文本?

  17. 17

    从另一个类(B类)更改类(A类)中的文本

  18. 18

    在嵌套了另一个标签的HTML标签内更改文本

  19. 19

    如何在Qt中将拖放小部件实现到另一个容器?

  20. 20

    Qt5代表另一个对象发出信号

  21. 21

    Qt中的slot函数是否在另一个线程上运行?

  22. 22

    Qt:在另一个QGraphicsItem C ++中限制QGraphicsItem的可移动区域

  23. 23

    使用Python加入Qt Designer中的另一个窗口

  24. 24

    我如何在另一个线程Qt中显示MessageBox

  25. 25

    Qt图形被另一个遮住,但仍会导致绘画更新

  26. 26

    在Qt中将小部件居中放置在另一个小部件中

  27. 27

    另一个小部件Qt中的小部件

  28. 28

    Qt5-QML:在嵌套循环中时,ColumnLayout覆盖另一个ColumnLayout

  29. 29

    如何在Qt中管理另一个窗口?

热门标签

归档