本文整理汇总了C++中XMLHelper::getDoubleAttribute方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLHelper::getDoubleAttribute方法的具体用法?C++ XMLHelper::getDoubleAttribute怎么用?C++ XMLHelper::getDoubleAttribute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLHelper
的用法示例。
在下文中一共展示了XMLHelper::getDoubleAttribute方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RKComponent
RKPluginSpinBox::RKPluginSpinBox (const QDomElement &element, RKComponent *parent_component, QWidget *parent_widget) : RKComponent (parent_component, parent_widget) {
RK_TRACE (PLUGIN);
// get xml-helper
XMLHelper *xml = XMLHelper::getStaticHelper ();
// first question: int or real
intmode = (xml->getMultiChoiceAttribute (element, "type", "integer;real", 1, DL_INFO) == 0);
// create and add properties
addChild ("int", intvalue = new RKComponentPropertyInt (this, intmode, 0));
intvalue->setInternal (true);
addChild ("real", realvalue = new RKComponentPropertyDouble (this, !intmode, 0));
// layout and label
QVBoxLayout *vbox = new QVBoxLayout (this);
vbox->setContentsMargins (0, 0, 0, 0);
QLabel *label = new QLabel (xml->getStringAttribute (element, "label", i18n ("Enter value:"), DL_WARNING), this);
vbox->addWidget (label);
// create spinbox and read settings
spinbox = new RKSpinBox (this);
if (!intmode) {
double min = xml->getDoubleAttribute (element, "min", -FLT_MAX, DL_INFO);
double max = xml->getDoubleAttribute (element, "max", FLT_MAX, DL_INFO);
double initial = xml->getDoubleAttribute (element, "initial", min, DL_INFO);
int default_precision = xml->getIntAttribute (element, "default_precision", 2, DL_INFO);
int max_precision = xml->getIntAttribute (element, "max_precision", 8, DL_INFO);
spinbox->setRealMode (min, max, initial, default_precision, max_precision);
realvalue->setMin (min);
realvalue->setMax (max);
realvalue->setPrecision (default_precision);
} else {
int min = xml->getIntAttribute (element, "min", INT_MIN, DL_INFO);
int max = xml->getIntAttribute (element, "max", INT_MAX, DL_INFO);
int initial = xml->getIntAttribute (element, "initial", min, DL_INFO);
spinbox->setIntMode (min, max, initial);
intvalue->setMin (min);
intvalue->setMax (max);
}
// connect
connect (spinbox, SIGNAL (valueChanged (int)), this, SLOT (valueChanged (int)));
connect (intvalue, SIGNAL (valueChanged (RKComponentPropertyBase *)), this, SLOT (valueChanged (RKComponentPropertyBase *)));
connect (realvalue, SIGNAL (valueChanged (RKComponentPropertyBase *)), this, SLOT (valueChanged (RKComponentPropertyBase *)));
updating = false;
// finish layout
vbox->addWidget (spinbox);
vbox->addStretch (1); // make sure label remains attached to spinbox
if (xml->getStringAttribute (element, "size", "normal", DL_INFO) == "small") {
spinbox->setFixedWidth (100);
}
// initialize
valueChanged (1);
}
示例2: if
RKMatrixInput::RKMatrixInput (const QDomElement& element, RKComponent* parent_component, QWidget* parent_widget) : RKComponent (parent_component, parent_widget) {
RK_TRACE (PLUGIN);
is_valid = true;
// get xml-helper
XMLHelper *xml = parent_component->xmlHelper ();
// create layout
QVBoxLayout *vbox = new QVBoxLayout (this);
vbox->setContentsMargins (0, 0, 0, 0);
QLabel *label = new QLabel (xml->i18nStringAttribute (element, "label", i18n ("Enter data:"), DL_INFO), this);
vbox->addWidget (label);
display = new RKTableView (this);
vbox->addWidget (display);
mode = static_cast<Mode> (xml->getMultiChoiceAttribute (element, "mode", "integer;real;string", 1, DL_WARNING));
if (mode == Integer) {
min = xml->getIntAttribute (element, "min", INT_MIN, DL_INFO) - .1; // we'll only allow ints anyway. Make sure not to run into floating point precision issues.
max = xml->getIntAttribute (element, "max", INT_MAX, DL_INFO) + .1;
} else if (mode == Real) {
min = xml->getDoubleAttribute (element, "min", -FLT_MAX, DL_INFO);
max = xml->getDoubleAttribute (element, "max", FLT_MAX, DL_INFO);
} else {
min = -FLT_MAX;
max = FLT_MAX;
}
min_rows = xml->getIntAttribute (element, "min_rows", 0, DL_INFO);
min_columns = xml->getIntAttribute (element, "min_columns", 0, DL_INFO);
// Note: string type matrix allows missings, implicitly (treating them as empty strings)
allow_missings = xml->getBoolAttribute (element, "allow_missings", false, DL_INFO);
if (mode == String) allow_missings = true;
allow_user_resize_columns = xml->getBoolAttribute (element, "allow_user_resize_columns", true, DL_INFO);
allow_user_resize_rows = xml->getBoolAttribute (element, "allow_user_resize_rows", true, DL_INFO);
trailing_rows = allow_user_resize_rows ? 1 : 0;
trailing_columns = allow_user_resize_columns ? 1 : 0;
row_count = new RKComponentPropertyInt (this, false, xml->getIntAttribute (element, "rows", qMax (2, min_rows), DL_INFO));
column_count = new RKComponentPropertyInt (this, false, xml->getIntAttribute (element, "columns", qMax (2, min_columns), DL_INFO));
tsv_data = new RKComponentPropertyBase (this, false);
row_count->setInternal (true);
addChild ("rows", row_count);
column_count->setInternal (true);
addChild ("columns", column_count);
addChild ("tsv", tsv_data);
connect (row_count, SIGNAL (valueChanged(RKComponentPropertyBase*)), this, SLOT (dimensionPropertyChanged(RKComponentPropertyBase*)));
connect (column_count, SIGNAL (valueChanged(RKComponentPropertyBase*)), this, SLOT (dimensionPropertyChanged(RKComponentPropertyBase*)));
connect (tsv_data, SIGNAL (valueChanged(RKComponentPropertyBase*)), this, SLOT (tsvPropertyChanged()));
updating_tsv_data = false;
model = new RKMatrixInputModel (this);
QString headers = xml->getStringAttribute (element, "horiz_headers", QString (), DL_INFO);
if (!headers.isEmpty ()) model->horiz_header = headers.split (';');
else if (!headers.isNull ()) display->horizontalHeader ()->hide (); // attribute explicitly set to ""
headers = xml->getStringAttribute (element, "vert_headers", QString (), DL_INFO);
if (!headers.isEmpty ()) model->vert_header = headers.split (';');
else if (!headers.isNull ()) display->verticalHeader ()->hide ();
updateAll ();
display->setModel (model);
display->setAlternatingRowColors (true);
if (xml->getBoolAttribute (element, "fixed_width", false, DL_INFO)) {
display->horizontalHeader ()->setStretchLastSection (true);
}
if (xml->getBoolAttribute (element, "fixed_height", false, DL_INFO)) {
int max_row = row_count->intValue () - 1;
display->setHorizontalScrollBarPolicy (Qt::ScrollBarAlwaysOff);
display->setFixedHeight (display->horizontalHeader ()->height () + display->rowViewportPosition (max_row) + display->rowHeight (max_row));
}
// define standard actions
KAction *cut = KStandardAction::cut (this, SLOT (cut()), this);
display->addAction (cut);
KAction *copy = KStandardAction::copy (this, SLOT (copy()), this);
display->addAction (copy);
KAction *paste = KStandardAction::paste (this, SLOT (paste()), this);
display->addAction (paste);
display->setContextMenuPolicy (Qt::ActionsContextMenu);
display->setRKItemDelegate (new RKItemDelegate (display, model, true));
connect (display, SIGNAL (blankSelectionRequest()), this, SLOT (clearSelectedCells()));
}