如何从自定义窗口小部件类更改中央窗口小部件?

便壶

我从Qt开始。以前,我是使用Java Swing来做的,在那里我是通过Card Layout完成的。我有MainWindow,Login Widget和Dashboard Widget。

MainWindow.cpp

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

    // set login screen on startup
    QWidget *login = new Login(this);
    setCentralWidget(login);
}

Login.cpp

#include "login.h"
#include "ui_login.h"

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

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

void Login::on_loginButton_clicked()
{
    // some logic
    // here I want to create Dashboard widget in central widget
    // but method setCentralWidget() can't be called from here
}
mbroadst

您要使用信号和插槽在窗口之间进行通信。QDialog特别提供了三个重要信号:accepted(),rejected(),finished(int)。因此,您需要执行以下操作:

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

    // set login screen on startup
    QWidget *login = new Login(this);
    connect(login, SIGNAL(finished(int)), this, SLOT(loginFinished(int)));

    setCentralWidget(login);
}

MainWindow::loginFinished(int reason)
{
    Login *login = qobject_cast<Login*>(sender());
    if (!login) {
        qDebug() << "something bad happened!";
        return;
    }

    login->deleteLater();
    setCentralWidget(someOtherWidget);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Flutter自定义窗口小部件无法显示

来自分类Dev

使用自定义窗口小部件填充QListWidget

来自分类Dev

Yii,自定义窗口小部件返回null

来自分类Dev

瓦拉GTK +。自定义窗口小部件的问题

来自分类Dev

appcompat SeachView窗口小部件的自定义字体

来自分类Dev

窗口小部件的android自定义字体属性

来自分类Dev

vaadin superdevmode找不到自定义窗口小部件类

来自分类Dev

仅当我单击“编辑”按钮时,如何使自定义窗口小部件可编辑?

来自分类Dev

如何将自定义窗口小部件添加为ToolButton的弹出菜单?

来自分类Dev

如何使自定义窗口小部件采用键盘事件(例如textctrls)

来自分类Dev

如何在KV lang中设置来自父项的自定义窗口小部件的文本?

来自分类Dev

如何使用异步源获取自定义窗口小部件的数据

来自分类Dev

如何在Django表单中为窗口小部件提供自定义名称

来自分类Dev

如何使Eclipse自动完成XML文件中的自定义窗口小部件名称

来自分类Dev

PyGObject自定义窗口小部件:如何绘制无效区域?

来自分类Dev

如何使用dojo build.sh构建自定义窗口小部件

来自分类Dev

带有MVVM和init事件的Kendo自定义窗口小部件-如何?

来自分类Dev

如何从父窗口小部件更改一个子窗口小部件的状态,而子窗口小部件是单独文件中的单独类?

来自分类Dev

Flutter:如何从现有的窗口小部件正确创建自定义窗口小部件并使用其属性(有时有条件)

来自分类Dev

如何从自定义绘画小部件更改为剪切路径小部件?

来自分类Dev

如何自定义android小部件

来自分类Dev

Python:如何显示带有自定义内容,无窗口小部件和无事件循环的大窗口

来自分类Dev

PySide-从中央窗口小部件中重置主窗口中央窗口小部件

来自分类Dev

GWT-自定义窗口小部件错误:无法读取未定义的属性“哈希”

来自分类Dev

QScrollArea,如何使中央窗口小部件可滚动?

来自分类Dev

如何将样式表应用于PyQt中的自定义窗口小部件

来自分类Dev

Drupal 8:如何自定义表单窗口小部件以显示实体字段值而不是实体标题?

来自分类Dev

如何在sitefinity上向自定义窗口小部件添加长文本字段?

来自分类Dev

如何在自定义函数中创建动态窗口小部件并在viewDidLoad中调用它们?

Related 相关文章

  1. 1

    Flutter自定义窗口小部件无法显示

  2. 2

    使用自定义窗口小部件填充QListWidget

  3. 3

    Yii,自定义窗口小部件返回null

  4. 4

    瓦拉GTK +。自定义窗口小部件的问题

  5. 5

    appcompat SeachView窗口小部件的自定义字体

  6. 6

    窗口小部件的android自定义字体属性

  7. 7

    vaadin superdevmode找不到自定义窗口小部件类

  8. 8

    仅当我单击“编辑”按钮时,如何使自定义窗口小部件可编辑?

  9. 9

    如何将自定义窗口小部件添加为ToolButton的弹出菜单?

  10. 10

    如何使自定义窗口小部件采用键盘事件(例如textctrls)

  11. 11

    如何在KV lang中设置来自父项的自定义窗口小部件的文本?

  12. 12

    如何使用异步源获取自定义窗口小部件的数据

  13. 13

    如何在Django表单中为窗口小部件提供自定义名称

  14. 14

    如何使Eclipse自动完成XML文件中的自定义窗口小部件名称

  15. 15

    PyGObject自定义窗口小部件:如何绘制无效区域?

  16. 16

    如何使用dojo build.sh构建自定义窗口小部件

  17. 17

    带有MVVM和init事件的Kendo自定义窗口小部件-如何?

  18. 18

    如何从父窗口小部件更改一个子窗口小部件的状态,而子窗口小部件是单独文件中的单独类?

  19. 19

    Flutter:如何从现有的窗口小部件正确创建自定义窗口小部件并使用其属性(有时有条件)

  20. 20

    如何从自定义绘画小部件更改为剪切路径小部件?

  21. 21

    如何自定义android小部件

  22. 22

    Python:如何显示带有自定义内容,无窗口小部件和无事件循环的大窗口

  23. 23

    PySide-从中央窗口小部件中重置主窗口中央窗口小部件

  24. 24

    GWT-自定义窗口小部件错误:无法读取未定义的属性“哈希”

  25. 25

    QScrollArea,如何使中央窗口小部件可滚动?

  26. 26

    如何将样式表应用于PyQt中的自定义窗口小部件

  27. 27

    Drupal 8:如何自定义表单窗口小部件以显示实体字段值而不是实体标题?

  28. 28

    如何在sitefinity上向自定义窗口小部件添加长文本字段?

  29. 29

    如何在自定义函数中创建动态窗口小部件并在viewDidLoad中调用它们?

热门标签

归档