本文整理汇总了C++中DomProperty::elementRect方法的典型用法代码示例。如果您正苦于以下问题:C++ DomProperty::elementRect方法的具体用法?C++ DomProperty::elementRect怎么用?C++ DomProperty::elementRect使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DomProperty
的用法示例。
在下文中一共展示了DomProperty::elementRect方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: xmlFromWidgetBox
// Get XML for a new form from the widget box. Change objectName/geometry
// properties to be suitable for new forms
static QString xmlFromWidgetBox(const QDesignerFormEditorInterface *core, const QString &className, const QString &objectName)
{
typedef QList<DomProperty*> PropertyList;
QDesignerWidgetBoxInterface::Widget widget;
const bool found = QDesignerWidgetBox::findWidget(core->widgetBox(), className, QString(), &widget);
if (!found)
return QString();
QScopedPointer<DomUI> domUI(QDesignerWidgetBox::xmlToUi(className, widget.domXml(), false));
if (domUI.isNull())
return QString();
domUI->setAttributeVersion(QLatin1String("4.0"));
DomWidget *domWidget = domUI->elementWidget();
if (!domWidget)
return QString();
// Properties: Remove the "objectName" property in favour of the name attribute and check geometry.
domWidget->setAttributeName(objectName);
const QString geometryProperty = QLatin1String("geometry");
const QString objectNameProperty = QLatin1String("objectName");
PropertyList properties = domWidget->elementProperty();
for (PropertyList::iterator it = properties.begin(); it != properties.end(); ) {
DomProperty *property = *it;
if (property->attributeName() == objectNameProperty) { // remove "objectName"
it = properties.erase(it);
delete property;
} else {
if (property->attributeName() == geometryProperty) { // Make sure form is at least 400, 300
if (DomRect *geom = property->elementRect()) {
if (geom->elementWidth() < NewFormWidth)
geom->setElementWidth(NewFormWidth);
if (geom->elementHeight() < NewFormHeight)
geom->setElementHeight(NewFormHeight);
}
}
++it;
}
}
// Add a window title property
DomString *windowTitleString = new DomString;
windowTitleString->setText(objectName);
DomProperty *windowTitleProperty = new DomProperty;
windowTitleProperty->setAttributeName(QLatin1String("windowTitle"));
windowTitleProperty->setElementString(windowTitleString);
properties.push_back(windowTitleProperty);
// ------
domWidget->setElementProperty(properties);
// Embed in in DomUI and get string. Omit the version number.
domUI->setElementClass(objectName);
QString rc;
{ // Serialize domUI
QXmlStreamWriter writer(&rc);
writer.setAutoFormatting(true);
writer.setAutoFormattingIndent(1);
writer.writeStartDocument();
domUI->write(writer);
writer.writeEndDocument();
}
return rc;
}
示例2: scaleFormTemplate
// Set a fixed size on a XML template
QString WidgetDataBase::scaleFormTemplate(const QString &xml, const QSize &size, bool fixed)
{
typedef QList<DomProperty*> PropertyList;
DomUI *domUI = QDesignerWidgetBox::xmlToUi(QLatin1String("Form"), xml, false);
if (!domUI)
return QString();
DomWidget *domWidget = domUI->elementWidget();
if (!domWidget)
return QString();
// Properties: Find/Ensure the geometry, minimum and maximum sizes properties
const QString geometryPropertyName = QLatin1String("geometry");
const QString minimumSizePropertyName = QLatin1String("minimumSize");
const QString maximumSizePropertyName = QLatin1String("maximumSize");
DomProperty *geomProperty = 0;
DomProperty *minimumSizeProperty = 0;
DomProperty *maximumSizeProperty = 0;
PropertyList properties = domWidget->elementProperty();
const PropertyList::const_iterator cend = properties.constEnd();
for (PropertyList::const_iterator it = properties.constBegin(); it != cend; ++it) {
const QString name = (*it)->attributeName();
if (name == geometryPropertyName) {
geomProperty = *it;
} else {
if (name == minimumSizePropertyName) {
minimumSizeProperty = *it;
} else {
if (name == maximumSizePropertyName)
maximumSizeProperty = *it;
}
}
}
if (!geomProperty) {
geomProperty = new DomProperty;
geomProperty->setAttributeName(geometryPropertyName);
geomProperty->setElementRect(new DomRect);
properties.push_front(geomProperty);
}
if (fixed) {
if (!minimumSizeProperty) {
minimumSizeProperty = new DomProperty;
minimumSizeProperty->setAttributeName(minimumSizePropertyName);
minimumSizeProperty->setElementSize(new DomSize);
properties.push_back(minimumSizeProperty);
}
if (!maximumSizeProperty) {
maximumSizeProperty = new DomProperty;
maximumSizeProperty->setAttributeName(maximumSizePropertyName);
maximumSizeProperty->setElementSize(new DomSize);
properties.push_back(maximumSizeProperty);
}
}
// Set values of geometry, minimum and maximum sizes properties
const int width = size.width();
const int height = size.height();
if (DomRect *geom = geomProperty->elementRect()) {
geom->setElementWidth(width);
geom->setElementHeight(height);
}
if (fixed) {
if (DomSize *s = minimumSizeProperty->elementSize()) {
s->setElementWidth(width);
s->setElementHeight(height);
}
if (DomSize *s = maximumSizeProperty->elementSize()) {
s->setElementWidth(width);
s->setElementHeight(height);
}
}
// write back
domWidget->setElementProperty(properties);
QString rc;
{ // serialize domUI
QXmlStreamWriter writer(&rc);
writer.setAutoFormatting(true);
writer.setAutoFormattingIndent(1);
writer.writeStartDocument();
domUI->write(writer);
writer.writeEndDocument();
}
delete domUI;
return rc;
}