c++ - 我如何在 Qt Creator 的主窗口中声明对象?

标签 c++ qt

这个问题应该很容易回答。我使用 Qt Creator 在我的 MainWindow 中创建了几个按钮,当我为按钮编写函数时,编译器说它们没有在此范围内声明。我需要#include 什么才能声明这些对象?以下的编译器错误是“baseDir”未在此范围内声明。 baseDir 是我窗口中 lineEdit 的对象名称。

主窗口.h

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H

    #include <QMainWindow>
    #include "ui_mainwindow.h"

    namespace Ui {
        class MainWindow;
    }

   class MainWindow : public QMainWindow
   {
        Q_OBJECT

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

    public slots:
        void getDir();
        void createProj();

    private slots:
        void on_findDir_clicked();

        void on_create_clicked();

    private:
        Ui::MainWindow *ui;
    };

    #endif // MAINWINDOW_H

主窗口.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "functions.h"
#include <QtGui/QApplication>
#include <QFileDialog>

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

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

void MainWindow::on_findDir_clicked()
{
    QString path;

    path = QFileDialog::getOpenFileName(
        this,
        "Choose a file to open",
        QString::null,
        QString::null );

    baseDir->setText( path );
}

最佳答案

您在 .ui 文件中定义的项目不会直接添加到您的主窗口类中,它们会添加到它的 ui 成员中。

尝试:

ui->baseDir->setText( path );

如果您有兴趣,请查看构建期间生成的 ui_mainwindow.h 文件。

关于c++ - 我如何在 Qt Creator 的主窗口中声明对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6282601/

相关文章:

c++ - 使用 cmake 对共享库的 undefined reference

c++ - 从函数访问 QTextEdit 小部件

c++ - 字节数组和 QString 转换的问题

c++ - 抽象基类的 QPointer

c++ - 属性表 (MFC) 的 RTL 布局问题

c++ - 从单个远程端点读取 UDP 数据而不会丢失数据

c++ - 无法编辑 TADOTable 中的数据

c++ - 在 Qt 中调整带有大图像的小部件的大小的常用习惯是什么?

Qt - 将光标更改为沙漏并禁用光标

c++ - 使用 glDrawElements 绘制 std::vector