Qt Creator没有名为stackkedwidget的成员

Qt Creator no member named stackedWidget

本文关键字:stackkedwidget 成员 Creator Qt      更新时间:2023-10-16

我刚刚在QT-Creator中设计了我的ui,由于主要应用程序是基于两个面板的,我决定使用StackedWidget来"更改布局",而不打开一个新窗口。

因此,我添加了一个名为:stackedWidget的QTStackedWidget(作为默认值)。

问题是在mainwindow.cpp,我添加了一个自定义插槽,其中包含:

ui->stackedWidget->setCurrentIndex(1);

当我构建这个的时候编译器说:

MainWindow .cpp:25:错误:在'Ui::MainWindow'中没有名为'stackedWidget'的成员
用户界面-> stackedWidget -> setCurrentIndex (1),
~ ~ ^

也在qt-creator本身,我无法将信号附加到stackkedwidget,因为它没有向我显示setCurrentIndex SLOT…

任何建议吗?

请注意,我是一个c++新手,我只是在几年前用PyQt4使用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();
private:
    Ui::MainWindow *ui;
private slots:
    void showOtherPage();
    void showMainPage();
};
#endif // MAINWINDOW_H

mainiwindow.cpp:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTimer>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    qDebug() << "MainWindow - Debug Mode ON";
    connect(ui->btnOther, SIGNAL(clicked()), SLOT(showOtherPage()));
}
void MainWindow::showOtherPage()
{
    qDebug() << "Showing Other Page";
    ui->stackedWidget->setCurrentIndex(1);
}
void MainWindow::showMainPage()
{
    qDebug() << "Showing Main Page";
    ui->stackedWidget->setCurrentIndex(0);
}

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

我有一个非常相似的问题。其中一个UI操作被定义为其他操作并被使用。我有一个ui has no member named xyz编译错误,只有这个,没有可能的解释。

我可以通过取消检查/检查项目编译选项中的Shadow build选项来解决这个问题!

希望它能节省我刚刚失去的30分钟。

今天面临同样的问题。重新创建项目确实有效,虽然我找到了一个解决方案,不会让一个重写一切:)在调试中运行它。一旦你做到了,问题就解决了。

创建一个新项目修复它…我不知道为什么,我仍在寻找一个解释。

我开始了一个新项目,创建了stackedWidget,并测试了页面切换的代码…它只是简单地工作……我仍然不知道为什么另一个不能建立…

检查了一遍又一遍名字和所有的东西

我试过清理项目和运行qmake没有任何运气。然后,我深入到项目文件夹中,删除了ui_***.h文件,一切都开始工作了。可能是因为Visual Studio生成了这个文件,而我是在另一台电脑上用Qt Creator做同样的项目。