• 3936阅读
  • 2回复

[讨论]自己写的Widget派生类在布局中添加弹簧或者加上addStretch后无法显示 [复制链接]

上一主题 下一主题
离线johnrambos
 

只看楼主 倒序阅读 楼主  发表于: 2017-11-03
关键词: 求助问题
  这个是我的构造函数:
    label = new QLabel("asda");
    button = new QPushButton("sdadd");
    ui->verticalLayout->addWidget(label);
    ui->verticalLayout->addWidget(button);
    form = new Form(ui->centralWidget);
    ui->verticalLayout->addWidget(form);
    ui->verticalLayout->addWidget(new QPushButton("1"));
    ui->verticalLayout->addStretch();
在添加上最后一句ui->verticalLayout->addStretch();后发现自己写的From 类对象from无法显示,或者,在ui文件中添加一个弹簧叶也无法显示,一去掉这俩,就马上有显示了。

离线johnrambos

只看该作者 1楼 发表于: 2017-11-03
现在我又 发现真正的问题是如果不加ui->verticalLayout->addWidget(form);这句,还可以显示from对象,因为不在layout中,一旦加入布局中就无法显示from,
而且,一旦将对象new 的方法 form = new Form(ui->centralWidget);改成form = new Form(),无论如何都不能在layout中显示了。
离线johnrambos

只看该作者 2楼 发表于: 2017-11-04
问题已经解决,将addStretch()语句改为使用QSpacerItem类就行了,是在ui_*****.cpp文件下看见的。
快速回复
限100 字节
 
上一个 下一个