Как мне записать в файл Python из многострочного ввода, полученного в графическом интерфейсе? - PullRequest
0 голосов
/ 16 апреля 2019

Я пишу программу, которая должна помочь мне в работе, но застрял при настройке графического интерфейса, который будет получать пользовательский ввод, а затем использовать этот ввод для записи кода Python в файл с именем config.py

config.py основан на 5 классах с несколькими строками текста, каждый из которых функционирует как быстрый текст, который записывается в отдельный фрейм в графическом интерфейсе.Мне нужен удобный способ редактировать эти классы вместо того, чтобы открывать мой текстовый редактор (в данном случае Atom) и записывать мои быстрые заметки в код на языке Python.

У меня есть графический интерфейс, настроенный для получения текстовой панели, для которой редактируется быстрый текст, текстовой панели для заголовка и многострочной текстовой панели для фактических заметок.Однако, поскольку я выполняю вставку пользовательского ввода в config.py вручную, каждый раз, когда в тело помещается более одной строки, он больше не форматируется правильно

My configGUI.py - это файл, который захватываетпользовательский ввод и запись в файл config.py, и вот код для этого

qnBody_label = wx.StaticText(panel, label='Quicknote Text')
self.body_Control = wx.TextCtrl(panel, style=wx.TE_MULTILINE)
widgets.append(qnBody_label)
widgets.append(self.body_Control)

qnTitle_label = wx.StaticText(panel, label='Quicknote Title')
self.title_Control = wx.TextCtrl(panel)
widgets.append(qnTitle_label)
widgets.append(self.title_Control)

qnBody_label = wx.StaticText(panel, label='Quicknote Text')
self.body_Control = wx.TextCtrl(panel, style=wx.TE_MULTILINE)
widgets.append(qnBody_label)
widgets.append(self.body_Control)

quicknoteNumber = "class QN%s():" % self.number_Control.GetValue()
quicknoteTitle = "\ttitle = '%s'" % self.title_Control.GetValue()
quicknoteBody = "\tnote = (\n\t'%s'\n)" % self.body_Control.GetValue()

Вот пример того, что я ожидаю в config.py:

class QN1():
    title = "Heres the title"
    note = (
        'First line of quicknotes\n'
        'Heres some more notes\n'
        'And the last notes\n'
    )

что яфактически получает:

class QN1():
    title = "Heres the title"
    note = (
        'First line of quicknotes
Heres some more notes
And the last notes'
    )

, что имеет смысл, учитывая то, что он говорит, но я не уверен, как получить ввод с многострочной текстовой панели и правильно отформатировать его в python

1 Ответ

0 голосов
/ 17 апреля 2019

Когда вы добавляете новую строку, она ведет себя точно так, как должна, она печатает ее на новой строке, вам нужно отформатировать ее самостоятельно, добавив пробелы самостоятельно после \ n. Добавьте \ t, так как это короткая версия для вкладки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...