Qt Creator нет члена с именем stackedWidget

Я только что спроектировал свой интерфейс в QT-Creator и, поскольку основное приложение основано на двух панелях, я решил использовать StackedWidget для «изменения макета» без открытия нового окна.

Итак, я добавил QTStackedWidget с именем: stackedWidget (по умолчанию).

Проблема в mainwindow.cpp, я добавил пользовательский слот, который содержит:

ui->stackedWidget->setCurrentIndex(1);

когда я собираю это, компилятор говорит:

mainwindow.cpp: 25: ошибка: ни один член с именем ‘stackedWidget’ в ‘Ui :: MainWindow’
ui-> stackedWidget-> setCurrentIndex (1);
~~ ^

также в самом qt-creator я не смог прикрепить сигнал к stackedWidget, потому что он не показывает мне слот setCurrentIndex …

любой совет?

Обратите внимание, что я новичок в C ++, я только что использовал Qt пару лет назад с PyQt4.

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;
}

0

Решение

У меня была очень похожая проблема.
Одно из действий пользовательского интерфейса было определено как другие и использовалось.
У меня есть ui has no member named xyz ошибка компиляции только для этого, без возможного объяснения.

Я мог бы решить эту проблему, сняв флажок / проверяя Shadow build опция в опциях компиляции проекта!

Надеюсь, это спасет кого-то за 30 минут, которые я только что потерял 🙂

1

Другие решения

Создание нового проекта исправило это … Я не знаю почему, я все еще ищу объяснение.

Я запустил новый проект, создал stackedWidget и протестировал код для переключения страниц … он просто работает … и я до сих пор не знаю, ПОЧЕМУ другой не удается построить …

Проверено снова и снова имена и все.

0

По вопросам рекламы [email protected]