You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 13:57:33