进行Ui设计时,若碰到需要保持缩放过程中Widget水平与竖直方向的比例的情况时,本文提供了一个基本的解决方法,将需要保持比例的Widget作为一个容器Widget中的一个子部件,通过重写容器Widget的resizeEvent事件实现比例的保持!
WidgetKeepSubWidgetRadioClass.h
#include <QtCore>
#include <QResizeEvent>
#include <QWidget>
class WidgetKeepSubWidgetRadioClass:public QWidget
{
public:
WidgetKeepSubWidgetRadioClass();
~WidgetKeepSubWidgetRadioClass();
void setSubWidget(QWidget* pWidget);
void DisableKeepRadio(void);
void EnableKeepRadio(float Radio);
private:
void resizeEvent(QResizeEvent* e);
private:
bool isKeepRadio = true;
float SubWidgetRadio = 1;
QWidget* pSubWidget = nullptr;
};
WidgetKeepSubWidgetRadioClass.cpp
#include "WidgetKeepSubWidgetRadioClass.h"
#include <QHBoxLayout>
WidgetKeepSubWidgetRadioClass::WidgetKeepSubWidgetRadioClass