Метод сбора информации о сотрудниках не является достаточно полным

Я знаю, что на это уже был дан ответ, и этот ответ хорошо работает большую часть времени. Однако я обнаружил, что это не удалось в Chrome (но не в Firefox), если изображение svg было большим (примерно 1 МБ). Он работает, если вы вернетесь к использованию конструкции Blob, как описано здесь здесь и здесь . Единственное отличие - это аргумент типа. В моем коде я хотел нажать одну кнопку, чтобы загрузить svg для пользователя, который я выполнил с помощью:

var svgData = $("#figureSvg")[0].outerHTML;
var svgBlob = new Blob([svgData], {type:"image/svg+xml;charset=utf-8"});
var svgUrl = URL.createObjectURL(svgBlob);
var downloadLink = document.createElement("a");
downloadLink.href = svgUrl;
downloadLink.download = "newesttree.svg";
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);

0
задан Rob 13 July 2018 в 18:24
поделиться

1 ответ

Если вы хотите продолжать звонить в том же диалоговом окне, пока пользователь не отменяет, сохраняя список всех вариантов, вы просто делаете это с помощью цикла. Итак, вместо этого:

programing_language, ok = QtGui.QInputDialog.getItem(self, "Add Developer",
                                                     "list of languages", items, 0, False)

... сделайте это:

progamming_languages = []
while True:
    programing_language, ok = QtGui.QInputDialog.getItem(self, "Add Developer",
                                                         "list of languages", items, 0, False)
    if not ok:
        break
    programming_languages.append(progamming_language)

Пока мы на нем, вы действительно должны проверять ok вместо игнорируя его во всех других случаях. В конце концов, пользователь нажимает Cancel вместо ввода имени при запросе имени, действительно ли вы хотите задавать вопросы и в итоге создать нового сотрудника с пустым именем?


Кроме того, ваш код будет намного более читабельным, если вы не запустите свои висячие отступы, уже выходящие из края экрана. Например, вместо этого:

programing_language, ok = QtGui.QInputDialog.getItem(self, "Add Developer",
                                                     "list of languages", items, 0, False)

... сделайте это:

programing_language, ok = QtGui.QInputDialog.getItem(
    self, "Add Developer", "list of languages", items, 0, False)

... или, возможно, даже это:

programing_language, ok = QtGui.QInputDialog.getItem(
    self, "Add Developer", "list of languages", items, 0, False
)

Или, даже лучше, получите автоформаттеры, такие как black или yapf , и настройте его для автоматического форматирования вашего кода при каждом сохранении, чтобы вам не приходилось думать о таких вещах.

2
ответ дан abarnert 17 August 2018 в 12:16
поделиться
Другие вопросы по тегам:

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