gpt4 book ai didi

c++ - 从返回 QString 的函数中设置的 QLabel 文本

转载 作者:行者123 更新时间:2023-11-28 06:44:32 25 4
gpt4 key购买 nike

我的问题是 .cpp 文件。我已经在我的 Qlabel 中设置了文本,但我想通过一个函数返回文本,因为它最终会根据用户输入而改变。

我试过了;

ui->label->setText()->myDirectory::getDirectory(); 

以及下面的代码。

主窗口.h

class myDirectory
{
Qstring m_myDirectory = "/home/user/Desktop/"
public:
getDirectory()
{
return m_myDirectory;
}
};

主窗口.cpp

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
myDirectory dir;
//I'd like to set the text to the QString returned by myDirectory::getDirectory
ui->label->setText(QString(myDirectory::getDirectory());
}

编辑:

ui->label->setText()这一行正确的写法是

ui->label->setText(dir.getDirectory());

最佳答案

您的代码中有一些错误。我认为您应该按照一些有关 C++ 的教程来了解基础知识。

class myDirectory
{
Qstring m_myDirectory = "/home/user/Desktop/"
public:
getDirectory()
{
return m_myDirectory;
}
};

在类中,您需要一个构造函数。最好将属性放在私有(private)部分并通过 getters/setters 访问它们。也可以在构造函数中初始化变量以遵守一些规范。

myDirectory.h

class myDirectory
{
public:
myDirectory(); // constructor
QString getDirectory(); // getter

private:
Qstring m_myDirectory;
};

我的目录.cpp

myDirectory::myDirectory()      // constructor
{
m_myDirectory = "/home/user/Desktop/";
}
QString myDirectory::getDirectory() // getter
{
return m_myDirectory;
}

在你的主窗口中:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->label->setText(QString(myDirectory::getDirectory());
}

您想创建一个带有QString 参数的QString 对象,它可以工作,但在您的情况下毫无用处。

当您编写 myDirectory::getDirectory() 时,您调用了 myDirectory 类的 getDirectory() 函数。只有静态函数才允许在不实例化对象的情况下调用函数。

在你的情况下,你应该实例化一个对象:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
myDirectory dir;
ui->label->setText(dir.getDirectory());
}

关于c++ - 从返回 QString 的函数中设置的 QLabel 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25251185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com