qt应用程序自适应

//.h
#ifndef AUTORESIZE_H
#define AUTORESIZE_H
#include <map>
#include <qfont.h>
#include <qrect.h>

class QWidget;
class QResizeEvent;
class AutoResize
{
public:
    AutoResize(QWidget *w);
    ~AutoResize();

    void Resize(QResizeEvent *event);

private:
    void FindWidgetAllChildren();

private:
    struct ResizeInfo
    {
        QRect mRect;
        QFont mFont;
    };

    ResizeInfo mResizeInfo;
    std::map<QWidget*, ResizeInfo> mWdgtMapSize; //保存所有窗口最开始大小和字体
    QWidget* mCurWidget = Q_NULLPTR;
};

#endif // AUTORESIZE_H

// .cpp
#include <qwidget.h>
#include <qlayout.h>
#include <QResizeEvent>
#include "autoresize.h"

AutoResize::AutoResize(QWidget *w) : mCurWidget(w)
{
    mResizeInfo.mRect = mCurWidget->geometry();
    mResizeInfo.mFont = mCurWidget->font();

    int pointsize = mResizeInfo.mFont.pointSize();
    if(pointsize != -1)
    {
        mResizeInfo.mFont.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值