c++ - 在运行时添加自定义 QWidget

标签 c++ qt widget qwidget

我正在尝试实现自定义小部件层次结构: QMainWindow -> QFrame -> MyWidget -> QFrame -> MySubWidget

这是 MyWidget 类的样子:

    class MyWidget : public QWidget {
        Q_OBJECT
    public:
        MyWidget(QWidget *parent = 0, ...);
        ...
    public slots:
        void SlotFunction(int i);
        ...
    private:
        MySubWidget *sub_w;
        QFrame *sub_frame;
        ...
    }

如果我尝试在 MyWidget 构造函数期间创建 MySubWidget,则所有 MySubWidget 元素都会按预期显示:

    MyWidget::MyWidget (...) : QWidget(parent) {
        ...
        sub_frame = new QFrame(this);
        ...
        sub_w = new MySubWidget(sub_frame); // commented out on a runtime test
    }

但是如果我尝试在运行时添加子部件,sub_frame 将保持空白。 IE。信号 react :

    void MyWidget::SlotFunction(int i) {
        sub_w = new MySubWidget(sub_frame); // update, repaint, show and hide methods aren't helphul
    }

最佳答案

我知道这是一个老问题,但我遇到了一个非常相似的问题,结果是缺少对 QWidget::show() 的调用。也许这也是您的问题?

我的问题在这里:Dynamically add instance inherited from QWidget

干杯。

关于c++ - 在运行时添加自定义 QWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14060903/

相关文章:

c++ - 此警告消息是什么意思?

c++ - 我应该使用 boost::property_map 吗?

Qt 安装程序框架 - 在开始菜单中为所有用户创建快捷方式

c++ - 我如何/应该在 Qt 中的 ui 表单和数据成员之间创建自动链接?

c++ - 如何在 QTreeView 中隐藏孙子

java - 表单验证和 SuggestBox 选择之间的 GWT 冲突

C++ 星号和括号运算符一起使用

c++ - 无法发现以下代码中的内存泄漏问题

java - Widget 中可点击的 ImageView?

用于单选按钮选择器的网格图像替代方案的 CSS/JS?