如何在 Python FMX GUI 应用程序中为备忘录添加占位符文本?

问题描述 投票:0回答:1

当在我的

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
上不起作用?如何在备忘录上添加占位符?

python firemonkey user-interaction memo property-placeholder
1个回答
0
投票
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 属性设置为所需的占位符文本。当备忘录控件为空且未获得焦点时,该文本将以浅灰色显示。一旦用户单击“备忘录”控件开始输入,占位符文本就会消失。

© www.soinside.com 2019 - 2024. All rights reserved.