Qt stackedwidget ui datei anzeigen



  • Hallo liebe Entwickler,
    ich glaube ich habe eine ziemlich einfache frage für einen fortgeschrittenden entwickler.

    ich würde gerne wissen ob es möglich ist eine ui datei in einem stackwidget anzeigen zu lassen.
    ich habe eine mainwindwow.ui datei in qt designer entworfen darin liegt ein qtstackedwidget, mein ziel ist es mehrere pages durch buttons anzeigen zu lassen ,aber ich möchte nicht alles in eine datei reincoden sondern für jede page ein seperates ui file,.
    wie in qtquick "STATES". ich poste mal meine code vielleicht weiß jemand wie das funzt. grüßle.

    mainwinwoh.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 slots:
    void on_pushButton_clicked();
    // void onpushButton_clicked();

    private:
    Ui::MainWindow *ui;
    };

    #endif // MAINWINDOW_H
    @

    pageone.h
    @#ifndef PAGEONE_H
    #define PAGEONE_H

    #include <QFrame>

    namespace Ui {
    class PageOne;
    }

    class PageOne : public QFrame
    {
    Q_OBJECT

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

    private:
    Ui::PageOne *ui;
    };

    #endif // PAGEONE_H
    @

    main.ccp

    @#include "mainwindow.h"
    #include <QApplication>

    int main(int argc, char *argv[])
    {
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec&#40;&#41;;
    

    }
    @

    mainwindow.ccp

    @#include "mainwindow.h"
    #include "pageone.h"

    #include "ui_mainwindow.h"

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

    ui->stackedWidget->addWidget(new PageOne(this));
    
    
      connect(pageone->getUI().Submit, SIGNAL(clicked()), this, SLOT(on_pushButton_clicked()));
     // connect(ui->Submit, SIGNAL(clicked()), this, SLOT(on_pushButton_clicked()));
    //  connect(ui->Auftragsverwaltung, SIGNAL(clicked()), this, SLOT(onpushButton_clicked()));
    

    }

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

    void MainWindow::on_pushButton_clicked()
    {
    ui->stackedWidget->setCurrentIndex(1);

    }@

    pageone.ccp

    @#include "pageone.h"
    #include "ui_pageone.h"

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

    PageOne::~PageOne()
    {
    delete ui;
    }@



  • Was für ein Fehlverhalten tritt denn bei deinem Ansatz auf? Wird das eingefügte widget nicht angezeigt?

    Grundlegend: Die addWidget Funktion gibt dir auch den index des widgets im stackedwidget zurück. Du könntest mal überprüfen, ob der hardcodierte Wert (1) stimmt.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.