如何在Python DelphiFMX GUI应用中通过代码隐藏与显示控件?
解决DelphiFMX for Python中控件隐藏/显示的问题
问题分析
你尝试使用Show()和Hide()方法控制矩形的显示与隐藏,但DelphiFMX for Python的控件并不提供这两个方法,这是报错的直接原因。
正确实现方式
在DelphiFMX for Python中,控制控件显示或隐藏的标准方式是修改控件的**Visible**属性:
- 设置为
True:显示控件 - 设置为
False:隐藏控件
修改后的核心代码片段
将按钮点击事件替换为以下代码:
def ShowButton_OnClick(self, sender): self.myRectangle.Visible = True def HideButton_OnClick(self, sender): self.myRectangle.Visible = False
完整可运行代码
from delphifmx import * class frmMain(Form): def __init__(self, owner): self.Caption = 'My Form with Hide/Show Buttons' self.Width = 600 self.Height = 500 self.ShowButton = Button(self) self.ShowButton.Parent = self self.ShowButton.Width = 200 self.ShowButton.Height = 100 self.ShowButton.Position.X = 50 self.ShowButton.Position.Y = 50 self.ShowButton.Text = 'Show' self.ShowButton.OnClick = self.ShowButton_OnClick self.HideButton = Button(self) self.HideButton.Parent = self self.HideButton.Width = 200 self.HideButton.Height = 100 self.HideButton.Position.X = self.ShowButton.Position.X + self.ShowButton.Width + 50 self.HideButton.Position.Y = 50 self.HideButton.Text = 'Hide' self.HideButton.OnClick = self.HideButton_OnClick self.myRectangle = Rectangle(self) self.myRectangle.Parent = self self.myRectangle.Width = self.ShowButton.Position.X + (self.ShowButton.Width * 2) self.myRectangle.Height = 100 self.myRectangle.Position.X = 50 self.myRectangle.Position.Y = self.ShowButton.Position.Y + self.ShowButton.Height + 50 def ShowButton_OnClick(self, sender): self.myRectangle.Visible = True def HideButton_OnClick(self, sender): self.myRectangle.Visible = False def main(): Application.Initialize() Application.Title = "My Application" Application.MainForm = frmMain(Application) Application.MainForm.Show() Application.Run() Application.MainForm.Destroy() main()
补充说明
Visible是FMX框架中控件可见性的原生控制属性,在Delphi原生FMX和Python绑定版本中通用,设置后会立即生效,无需额外调用刷新方法。
内容的提问来源于stack exchange,提问作者Shaun Roselt
相关产品推荐
相关产品推荐

