Сериализация DateTime ко времени без миллисекунд и GMT

Лучшее, что я могу сказать из QStyleSheetStyle :: updateStyleSheetFont , виджет всегда содержит разрешенный шрифт из таблицы стилей. Я ожидаю, что QWidget::font() вернет разрешенный шрифт, который вы установили, используя таблицу стилей - то есть шрифт, который является объединенным шрифтом приложения, шрифтами любого родительского виджета и шрифтом стилей.

Виджет сначала нужно отполировать, если вы не запрашиваете после того, как события были доставлены (т. е. из цикла событий).

// https://github.com/KubaO/stackoverflown/tree/master/questions/style-font-query-test-45422885
#include 

int main(int argc, char ** argv) {
   QApplication app{argc, argv};
   QLabel label("Test");
   auto font1 = label.font();
   label.setStyleSheet("font-size: 49pt;");
   label.show();
   label.ensurePolished();
   auto font2 = label.font();
   Q_ASSERT(font1.pointSize() != 49);
   Q_ASSERT(font2.pointSize() == 49);
   Q_ASSERT(font1.family() == font2.family());
}

12
задан Chris 26 September 2008 в 19:11
поделиться

2 ответа

Вы могли создать свойство строки, которое делает перевод в Ваше timeField поле и помещает атрибут сериализации на тот вместо этого реальное свойство DateTime, которое использует остальная часть приложения.

14
ответ дан 2 December 2019 в 04:03
поделиться

Помещенный [XmlIgnore] на свойство Time.

Затем добавьте новое свойство:

[XmlElement(DataType="string",ElementName="Time")]
public String TimeString
{
    get { return this.timeField.ToString("yyyy-MM-dd"); }
    set { this.timeField = DateTime.ParseExact(value, "yyyy-MM-dd", CultureInfo.InvariantCulture); }
}
23
ответ дан 2 December 2019 в 04:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: