如何在Qt Creator的主窗口中声明对象
How do I declare objects from my main window in Qt Creator?
这个问题应该很容易回答。我使用QtCreator在MainWindow中创建了几个按钮,当我为这些按钮编写函数时,编译器说它们没有在这个范围内声明。要声明这些对象,我需要#包含什么?以下的编译器错误为"baseDir"未在此作用域中声明。baseDir是我的窗口中lineEdit的objectName。
主窗口.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
文件。
相关文章:
- .cpp和.h文件中的模板专用化声明
- 未在作用域中声明unordered_map
- C++避免重复声明的语法是什么
- 如何确保C++函数在定义之前声明(如override关键字)
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 错误:未在此范围内声明'reverse'
- 问:如何使用C++中的按钮从窗口打开窗口
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 为什么在定义函数之前先声明它
- 如果不在窗口 10 中声明名为 openCV 的 openCV namedWindow,QT 图像显示将无法正常工作
- 在 mingw64- 变量下的窗口中编译 openvpn3 时出错,未在范围内声明
- 如何为所有窗口形式声明全球类对象
- 如何将SFML窗口声明为我所有的类功能
- 从QT中的对话框中声明指向主窗口的指针
- wxwidgets UI 更新:声明窗口标识符
- Qt 错误:无法在主窗口中声明多个主窗口.cpp
- QT声明主窗口出主类
- 如何在Visual studio即时窗口中声明变量
- 如何在Qt Creator的主窗口中声明对象
- 我如何声明OutputDebugStringA没有窗口.h宏