Python DelphiVCL GUI中GroupBox背景色设置无效的问题求助
问题:DelphiVCL for Python中GroupBox背景色设置无效
我正在使用DelphiVCL for Python GUI库,尝试修改GroupBox组件的背景色但未成功。
我编写了以下代码创建Form及其中的GroupBox:
from delphivcl import * class frmMain(Form): def __init__(self, owner): self.Caption = 'Hello World' self.Width = 1000 self.Height = 500 self.Position = "poScreenCenter" self.myGroupBox = GroupBox(self) self.myGroupBox.Parent = self self.myGroupBox.Align = "alClient" self.myGroupBox.Caption = "Hello World!" self.myGroupBox.Font.Size = 30 self.myGroupBox.AlignWithMargins = True self.myGroupBox.Margins.Top = 100 self.myGroupBox.Margins.Right = 100 self.myGroupBox.Margins.Bottom = 100 self.myGroupBox.Margins.Left = 100 self.myGroupBox.StyleElements = "" self.myGroupBox.Color = "$00418964" # 绿色
我尝试设置绿色背景色($00418964),并且按照相关说明清空了StyleElements,但背景色设置依然无效,运行后GroupBox并未显示预期的绿色背景。
解决方案
要让GroupBox的自定义背景色生效,除了现有设置外,还需要关闭它的父背景继承属性:
在代码中添加一行:
self.myGroupBox.ParentBackground = False
修改后的完整代码:
from delphivcl import * class frmMain(Form): def __init__(self, owner): self.Caption = 'Hello World' self.Width = 1000 self.Height = 500 self.Position = "poScreenCenter" self.myGroupBox = GroupBox(self) self.myGroupBox.Parent = self self.myGroupBox.Align = "alClient" self.myGroupBox.Caption = "Hello World!" self.myGroupBox.Font.Size = 30 self.myGroupBox.AlignWithMargins = True self.myGroupBox.Margins.Top = 100 self.myGroupBox.Margins.Right = 100 self.myGroupBox.Margins.Bottom = 100 self.myGroupBox.Margins.Left = 100 self.myGroupBox.StyleElements = "" self.myGroupBox.ParentBackground = False # 关闭父背景继承 self.myGroupBox.Color = "$00418964" # 绿色
原因
ParentBackground默认值为True,会让GroupBox自动继承父控件(此处为Form)的背景样式,直接覆盖你设置的Color属性。配合清空StyleElements禁用系统样式影响,就能让自定义背景色正常显示。
内容的提问来源于stack exchange,提问作者Shaun Roselt
相关产品推荐
相关产品推荐

