首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以多次使用一个QFrame?

是否可以多次使用一个QFrame?
EN

Stack Overflow用户
提问于 2014-07-08 08:32:48
回答 1查看 374关注 0票数 1

我使用的是一个QWidget,我想在其中放置一些分隔线。作为分隔线,我使用的是

代码语言:javascript
复制
QFrame *seperatorLine = new QFrame(_toolBar);
seperatorLine->setFrameStyle(QFrame::Sunken | QFrame::VLine);

我需要几行分隔符,我很好奇每次是否需要创建一个新的QFrame,或者是否有一种方法可以重用一个(或者使用一个复制构造函数)。

目前,该行仅在最后一个位置,我将其添加到QWidget中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-08 08:43:36

QObjectQWidget派生类无法访问副本构造函数。

相反,您可以在一个小工厂方法中封装您的QFrame属性:

代码语言:javascript
复制
QFrame* createSeparator(QWidget* parent=0) {
    QFrame *separatorLine = new QFrame(parent);
    separatorLine->setFrameStyle(QFrame::Sunken | QFrame::VLine);
    return separatorLine;
}

与子类QFrame相比,我更喜欢这个方法来调整QFrame实例的几个属性

“克隆”QObject的一种奇特方法是创建一个新对象并分配所有声明的属性。当然,只有当您希望传递值时,它才是有用的:

代码语言:javascript
复制
CustomObject* CustomObject::clone() {
    int count = metaObject()->propertyCount();
    CustomObject* clone = new CustomObject(this->parent());

    for (int i = 0; i < count; i++) {
        const char* prop = metaObject()->property(i).name();
        clone->setProperty(prop, property(prop));
    }
    return clone;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24627182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档