簡體   English   中英

如何從gui中收到的多行輸入寫入python文件?

[英]How do I write to a python file from a multi-line input received in a gui?

我正在編寫一個旨在幫助我完成工作的程序,但是在設置一個將接收用戶輸入的gui然后使用該輸入將python代碼編寫到名為config.py的文件中時會遇到困難

config.py基於5個類,這些類具有多行文本,每個行都作為寫入gui中單獨幀的quicknotes。 我需要一種用戶友好的方式來編輯這些類,而不是打開我的文本編輯器(本例中為atom)並將我的quicknotes編寫成python代碼。

我已經設置了gui以接收正在編輯quicknote的文本面板,標題的文本面板以及實際筆記的多行文本面板。 但是,因為我正在手動將用戶輸入插入到config.py中,所以無論何時將多行放入正文中,它都不再正確格式化

我的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

當您添加新行時,它的行為完全正確,它將它打印在一個新行上,您需要做的是通過在\\ n之后添加空格來自行格式化。 添加\\ t,因為這是tab的簡短版本

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM