How to Implement the coding part of this UI Integration?
-
@Aviral-0 said in How to Implement the coding part of this UI Integration?:
how to add LogDisplay object in ui->stackedwidget?
Like shown in documentation: https://doc.qt.io/qt-6/qstackedwidget.html Did you read it?
stackedWidget->addWidget(firstPageWidget);
Before you ask:
LogDisplay *logDisplay = new LogDisplay(this); ui->stackedWidget->addWidget(logDisplay);
-
@jsulm The Object of Page in StackedWidget is "page" in UI,
and I have implemented like this:ui->stackedWidget->addWidget(ui->page); LogDisplay *logDisplay = new LogDisplay(this); ui->stackedWidget->addWidget(logDisplay);
Still No Stacked window is shown. Please Help!
-
@Aviral-0 If you want to add your logDisplay to an existing widget in stackedwidget (for whatever reason) then do so:
LogDisplay *logDisplay = new LogDisplay(ui->page); // Or, if ui->page has a layout: LogDisplay *logDisplay = new LogDisplay(); ui->page->layout()->addWidget(logDisplay);
Then please don't call ui->stackedWidget->addWidget(logDisplay)!
-
@Aviral-0 said in How to Implement the coding part of this UI Integration?:
ui->stackedWidget->addWidget(ui->page);
LogDisplay *logDisplay = new LogDisplay();where, for the love of god, did you see this as a suggestion ?
-
@Aviral-0 Please, I never said you need ui->stackedWidget->addWidget(ui->page)!
ui->page was already added to stacked widget in UI! Please think about what you're doing!
This should work:LogDisplay *logDisplay = new LogDisplay(); ui->page->layout()->addWidget(logDisplay);
If it crashes then please first use a debugger to see why. Debugger is really one of the most basic tools of a programmer.
-
@Aviral-0 said in How to Implement the coding part of this UI Integration?:
I am new to programming job and it doesn't interest me much, but gotta do it for the living.
Ummm.....
Just to cover my basic needs so that I can do what interests me!
I don't know how easy it will be to use programming to cover your "basic needs" while you go off doing whatever you actually want to do! Programming is (relatively) hard, it certainly requires some effort to understand what is going on! All the best :)
-
@Aviral-0 said in How to Implement the coding part of this UI Integration?:
Launches the application but I see no stackedwidget in it.
Probably because ui->page page of your stacked widget is shown and not the other you're adding.
I already told you: if your app crashes use debugger to see why. I guess ui->page has no layout, so ui->page->layout() returns nullptr. Add a layout to it then. -
@JonB Yeah! Do you have any idea what I am doing wrong here:
ui->page->setLayout(new QHBoxLayout); LogDisplay *logDisplay = new LogDisplay(ui->page); // ui->stackedWidget->layout()->addWidget(logDisplay); ui->stackedWidget->addWidget(logDisplay); ui->stackedWidget->show();
-
@Aviral-0 said in How to Implement the coding part of this UI Integration?:
Do you have any idea what I am doing wrong here
What do you expect this code to do?
You added a layout to ui->page. Then you added logDisplay as another page. But you wanted to have logDisplay on ui->page, right? Can you please read more carefully? I wrote before:// Or, if ui->page has a layout: LogDisplay *logDisplay = new LogDisplay(); ui->page->layout()->addWidget(logDisplay);
So, don't you think your code should be like:
// Or, if ui->page has a layout: LogDisplay *logDisplay = new LogDisplay(); ui->page->setLayout(new QHBoxLayout); ui->page->layout()->addWidget(logDisplay);
-
@Aviral-0
@jsulm said in How to Implement the coding part of this UI Integration?:Probably because ui->page page of your stacked widget is shown and not the other you're adding.
I think
ui->stackedWidget->addWidget(logDisplay)
addslogDisplay
as another widget page after thepage
one you show in your screenshot, but does not make the new one be the one shown.After the
addWidget()
tryui->stackedWidget->setCurrentWidget(logDisplay);
Is that what you expected to see?
Having said that. I am not at all convinced you want that
page
already in yourQStackedWidget
? Depending on what you want, either get rid of that or go something like:ui->page->setLayout(new QVBoxLayout); ui->page->layout()->addWidget(LogDisplay);
-