QObject
因此QWidget
派生類不能訪問拷貝構造函數。
取而代之的是,你可以在一個小工廠方法時封裝的QFrame屬性:
QFrame* createSeparator(QWidget* parent=0) {
QFrame *separatorLine = new QFrame(parent);
separatorLine->setFrameStyle(QFrame::Sunken | QFrame::VLine);
return separatorLine;
}
我喜歡這種方法在子類QFrame來調整一個QFrame實例
看上方式的幾個屬性「克隆」QObject將創建一個新的對象並分配所有聲明的屬性。當然,如果你想傳遞的值是唯一有用的:
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;
}
來源
2014-07-08 08:43:36
jbh
我相信每個GUI元素應該用'QFrame'(QWidget中)的一個單獨的實例來表示,所以你需要幾個分隔線。 – vahancho