• 686阅读
  • 1回复

[讨论]关于继承父类控件的尺寸疑问 [复制链接]

上一主题 下一主题
离线lwei24
 

只看楼主 倒序阅读 楼主  发表于: 2023-04-03
如题,根据如下代码:
  1. FrmMain::FrmMain(QWidget *parent)
  2.     : QWidget(parent)
  3. {
  4.     this->resize(1080, 600);
  5.     m_widget = new QWidget(this);
  6.     m_widget->setStyleSheet("QWidget{background-color:yellow;}");
  7.     qWarning()<<"width - "<<m_widget->width()<<", height - "<<m_widget->height();
  8.     QVBoxLayout *layoutMain = new QVBoxLayout;
  9.     layoutMain->setSpacing(0);
  10.     layoutMain->setContentsMargins(0, 0, 0, 0);
  11.     layoutMain->addWidget(m_widget);
  12. }
创建了一个窗口,并生命一个QWidget *m_widget;对象,为什么布局后m_widget对象没有从父类(this)这里继承它的大小尺寸呢?而是打印出默认的尺寸width -  100 , height -  30。有什么办法能在布局的时候,让子控件能继承父类的大小吗?欢迎各位大佬们指点一二,我在此感激不尽!
离线northsheng

只看该作者 1楼 发表于: 2023-04-13

如果想让QWiget继承父类大小,可以使用QWidget的resizeEvent()函数来实现:
void FrmMain::resizeEvent(QResizeEvent *event)
{
    m_widget->resize(event->size());
}
通过重载resizeEvent()函数,在父类的大小改变时,自动设置子控件的大小,从而实现子控件继承父类大小的目的。
快速回复
限100 字节
 
上一个 下一个