实现的原则很简单,一切子控件都要在布局中添加,如果是widget作控件,widget内部也要有布局。本文将通过Qt Designer和代码化UI设计两种途径讲解实现方法。 一、以Qt Designer为例,想要在这个Widget窗体内部再添加两个子控件,如下图 添加一个布局后,对布局以外的空白区域右键,选择布局,你需要的布局方式即可,这里以水平布局为例。如下图所示。 效果如下图,现在布局里新添加的控件均可随窗体大小自由缩放。 二、代码化UI设计 使用setLayout方法即可,在布局里添加子控件
//在你的Widget类的构造函数中 QHBoxLayout *horizontalLayout = new QHBoxLayout(this);//新建布局 horizontalLayout->setObjectName(QStringLiteral("horizontalLayout"));//为布局设置对象名 this->setLayout(horizontalLayout);//在此Widget中添加该布局 horizontalLayout->addWidget(_your_widget);//往布局里添加任何你需要的子控件,这里是添加了一个新的Widget作为子控件,_you_widget是你自己的窗体变量,请根据实际需要自己添加任何控件
最后,添加一个日历子控件,让我们看一下效果: 日历子控件可以随着窗体变化,沿边框自适应改变大小,如下图所示