无法从void函数访问Qt ui

时间:2015-07-28 15:24:26

标签: c++ qt

我的mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
   Q_OBJECT

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

private:
Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

我的mainwindow.cpp文件

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

void MainWindow::test()
{
    ui->textBrowser->append("Hello world");
}

QT设计师说“ui未在此范围内声明”但我在同一个cpp文件中使用它。

编辑*添加了mainwindow.h以获取更多信息。

1 个答案:

答案 0 :(得分:4)

test()必须是班级MainWindow的成员方法:

mainwindow.cpp

void MainWindow::test()
{
    ui->textBrowser->append("Hello world");
}

您还必须添加 mainwindow.h

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

    void test(); //<<

    // ...
};