当在我的
TextPrompt
上使用 Edit
时,就像这个 answer 一样,那么它可以工作,但是对我的 TextPrompt
使用 Memo
不起作用。在我的备忘录上使用它时,我收到错误:
AttributeError: Error in setting property TextPrompt
这是我的完整代码:
from delphifmx import *
class frmMain(Form):
def __init__(self, owner):
self.Caption = 'My Form'
self.Width = 400
self.Height = 200
self.Padding.Top = 20
self.Padding.Right = 20
self.Padding.Bottom = 20
self.Padding.Left = 20
self.myEdit = Edit(self)
self.myEdit.Parent = self
self.myEdit.Align = "Top"
self.myEdit.TextPrompt = "Enter your name..."
self.myMemo = Memo(self)
self.myMemo.Parent = self
self.myMemo.Align = "Client"
self.myMemo.Margins.Top = 20
self.myMemo.TextPrompt = "Enter your bio..."
def main():
Application.Initialize()
Application.Title = "My Application"
Application.MainForm = frmMain(Application)
Application.MainForm.Show()
Application.Run()
Application.MainForm.Destroy()
main()
失败的行是:
self.myMemo.TextPrompt = "Enter your bio..."
为什么它在
Edit
上起作用,但在Memo
上不起作用?如何在备忘录上添加占位符?
import fmx
class MyApp(fmx.Application):
def __init__(self):
super().__init__()
def Initialize(self):
self.MainForm = self.CreateForm()
self.MainForm.Caption = "Memo Placeholder Example"
self.MainForm.SetBounds(100, 100, 400, 300)
self.memo = fmx.Memo(self.MainForm)
self.memo.Parent = self.MainForm
self.memo.SetBounds(10, 10, 380, 280)
self.memo.TextPrompt = "Enter your text here..." # Set the placeholder text
if __name__ == "__main__":
app = MyApp()
app.Run()
在此示例中,我们创建了一个带有备忘录控件的简单 FMX 应用程序。我们将 Memo 控件的 TextPrompt 属性设置为所需的占位符文本。当备忘录控件为空且未获得焦点时,该文本将以浅灰色显示。一旦用户单击“备忘录”控件开始输入,占位符文本就会消失。