从QSize创建CSize包装器

时间:2011-06-02 13:19:33

标签: qt

我正在尝试为Qt的QSize类创建一个包装器。 这是代码段。

class CSize
{
private:
    QSize m_szSize;

public:
    int cx,cy;

CSize();
CSize(int cx,int cy)
{

}
CSize(const CSize& obj)
{
    m_szSize.setWidth(obj.cx);
    m_szSize.setHeight(obj.cy);
}
};

但是当下面的情况到来时,

CSize sz;
sz.cx = 10;
sz.cy = 20;

如何更新m_szSize的值。 有人请帮帮我。

2 个答案:

答案 0 :(得分:1)

您需要将cxcy设为私有,并为cxcy添加访问者:

void setCx(int p_cx) { cx = p_cx; m_szSize.setWidth(cx); }
void setCy(int p_cy) { cy = p_cy; m_szSize.setHeight(cy); }
int getCx() const { return cx; }
int getCy() const { return cy; }

答案 1 :(得分:0)

将数据保存在qsize中可能更安全,只需在需要时创建CSize。

例如,如果您需要csize来调用某些exisitng API

CallToSomeOldAPI(CSize(m_qsize.x,m_qsize.y));