Qt: Несколько окон в цепочке родительский / дочерний, родитель не закрывает дочерние элементы?

В итоге я добавил символы "в регулярное выражение Panos, чтобы избавиться от символов, сгенерированных сериализатором Microsoft для записи объектов во встроенный скрипт:

Так что, если у вас есть свойство в C # code-behind это что-то вроде

protected string JsonObject { get { return jsSerialiser.Serialize(_myObject); }}

И в вашем aspx у вас есть


Вы получите что-то вроде

var myObject = '{"StartDate":"\/Date(1255131630400)\/"}';

Обратите внимание на двойные кавычки.

Чтобы получить это в форме, которую eval будет правильно десериализовать, я использовал:

myObject = myObject.replace(/"\/Date\((\d+)\)\/"/g, 'new Date($1)');

Я использую Prototype , и чтобы использовать его, я добавил

String.prototype.evalJSONWithDates = function() {
    var jsonWithDates = this.replace(/"\/Date\((\d+)\)\/"/g, 'new Date($1)');
    return jsonWithDates.evalJSON(true);
}

17
задан ishmael 16 December 2010 в 00:02
поделиться

1 ответ

По умолчанию QApplication закрывается, когда закрывается последнее основное окно (окно без родителя) (см. QApplication :: lastWindowClosed сигнал ), поэтому закрытие вашего MainWindow закрывает все.

Закрытие виджета не удаляет его, если только не установлен атрибут Qt :: WA_DeleteOnClose (см. QWidget :: close () ). Если вы просто хотите, чтобы ваши окна были закрыты, я думаю, вам нужно переопределить closeEvent (), чтобы вызвать close () для дочерних элементов.

Но если вы хотите удалить их при закрытии, установите атрибут Qt :: WA_DeleteOnClose. Дочерние элементы автоматически удаляются при удалении родителя.

17
ответ дан 30 November 2019 в 13:33
поделиться
Другие вопросы по тегам:

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