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

标签 c++ qt user-interface

我的问题是 .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/

相关文章:

python - PySide QWidget 立即更新

java - 从 JavaFX 中阶段的实例访问 UI 组件

java - 如何显示我的工具栏?

c++ - regex_match 找不到方括号

c++ - boost circular_buffer 或堆排序性能

c++ - 根据鼠标位置放大窗口

c++ - 如何在 C++ 模板声明中声明函数

c++ - Qt 字符串终止

Qt项目文件: Add libs depending on Kit

java - 用java而不是xml设计android ui?