QBoxLayout的addWidget(QWidget * w)会改变w的parent()
示例:
我希望在page_frame对象中使用orders_add_page对象的price变量,
但按照下面这样写得到的price的值都不对。
int price;
orders_add_page::orders_add_page(QWidget *parent)
: QDialog(parent)
{
ui.setupUi(this);
page = new page_frame(type, this);
QVBoxLayout* layout = new QVBoxLayout(ui.page_main);
layout->addWidget(page);
}
void page_frame::init_orders_add_page()
{
orders_add_page* page = (orders_add_page*)p;
qDebug()<<page->price;
}
原因:这样写,实际上我调用的是ui.page_main的price变量,而该变量并不存在,所以得到的值不正确。
本来我以为
page = new page_frame(type, this);
这样写,page的父类parent()就会是this。
但
QVBoxLayout* layout = new QVBoxLayout(ui.page_main);
layout->addWidget(page);
这两条语句,把page的父类parent()变为了ui.page_main。
原文地址:https://blog.csdn.net/weixin_51883798/article/details/138125413
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!