这个问题应该很容易回答。我使用 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/