QWidget::setLayout: Attempting to set QLayout "" on MainWindow "", which already has a layout

本文介绍了解决在QMainWindow中添加QWidget时出现错误的方法。通过创建一个QWidget,并设置布局,然后将其作为中央部件添加到QMainWindow中可以避免错误。此外,文章还提供了一个直接在QWidget中设置布局的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于在Qmainwindow中添加Qwidget的时候会出现以上错误,解决办法。

      vb->addLayout(hb);

    vb->addLayout(hb1);
    vb->setContentsMargins(5,10,5,8);
    QWidget* widget = new QWidget(this);
    widget->setLayout(vb);
    this->setCentralWidget(widget);
创建一个QWidget,将控件放入到widget,在调用
setCentralWidget(widget)函数。
然而在QWidget中调用QWidget的组件的时候就不会存在,直接调用setlayout就可以了。

       QWidget w;

    w.setFixedSize(500,400);
    my_widget *widget=new my_widget;
    w.setLayout(widget->init_widget());
    w.show();

显示:[Krn64.dll][8108][16672][INFO] [DllMain] ProcessName is CHARGINGBOARDTESTER.EXE [Krn64.dll][8108][16672][INFO] [ProcessInject::UpdateFuncAddressToFileMapping] address [64]: 0x7ffaf3ae01f0 [32]: 0x77291960 HookFunc is no need, location is (0) HookFunc is no need, location is (1) [Krn64.dll][8108][16672][ERROR] [LoadDgsDll] unload ff64.dll err:0 [ActionControl][8108][16672][INFO] [DllMain] ProcessName is CHARGINGBOARDTESTER.EXE HookFunc is no need, location is (17) HookFunc is no need, location is (18) HookFunc is no need, location is (19) HookFunc is no need, location is (20) HookFunc is no need, location is (22) HookFunc is no need, location is (23) [Krn64.dll][8108][16672][INFO] [LoadDgsDll] load ac64.dll success [PrintControl][8108][16672][INFO] [IsDGControl]当前进程不是DG受控进程 [Krn64.dll][8108][16672][ERROR] [LoadDgsDll] unload pc64.dll err:1114 [Krn64.dll][8108][16672][ERROR] [LoadDgsDll] unload sc64.dll err:0 [Krn64.dll][8108][16672][ERROR] [LoadDgsDll] unload fcm64.dll err:0 [Krn64.dll][8108][16672][ERROR] [LoadDgsDll] unload jc64.dll err:0 [Krn64.dll][8108][16672][ERROR] [LoadDgsDll] unload sa64.dll err:0 [Krn64.dll][8108][16672][ERROR] [LoadDgsDll] unload fc64.dll err:2 qt.core.qmetaobject.connectslotsbyname: QMetaObject::connectSlotsByName: No matching signal for on_connect_btn_clicked() qt.core.qmetaobject.connectslotsbyname: QMetaObject::connectSlotsByName: No matching signal for on_batCapSetBtn_clicked() qt.core.qmetaobject.connectslotsbyname: QMetaObject::connectSlotsByName: No matching signal for on_snSetBtn_clicked() qt.core.qmetaobject.connectslotsbyname: QMetaObject::connectSlotsByName: No matching signal for on_saveBtn_clicked() Could not create pixmap from :\item\close.png Could not create pixmap from :\item\close.png Could not create pixmap from :\item\close.png Could not create pixmap from :\item\close.png Icon path does not exist: ":/item/battery_level_99.png" Icon path does not exist: ":/item/battery_voltage.png" Icon path does not exist: ":/item/battery_cur.png" Icon path does not exist: ":/item/load_voltage.png" Icon path does not exist: ":/item/load_cur.png" Icon path does not exist: ":/item/solar_panel_vol.png" Icon path does not exist: ":/item/solar_panel_cur.png" Icon path does not exist: ":/item/battery_cap.png" Supported image formats: QList("bmp", "cur", "gif", "ico", "jfif", "jpeg", "jpg", "pbm", "pgm", "png", "ppm", "svg", "svgz", "xbm", "xpm") QWidget::setLayout: Attempting to set QLayout "" on QDockWidget "", which already has a layout Could not create pixmap from :\item\close.png Could not create pixmap from :\item\close.png
最新发布
07-30
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值