我对python还很陌生,我正在尝试用npyscreen来组装一个小应用程序。这个应用程序的一部分有一个带有FormControlBox的页面,选中该页面时会显示一个FormControlBox。选中第二个FormControlBox时,会显示一些文本字段。你知道吗
我遇到的问题是让第二个FormControlBox在第一个未选中时将其值更改为False(使第二个隐藏)。这是我在这个窗体类中尝试采用的方法。你知道吗
class envMenuForm(npyscreen.Form):
def afterEditing(self):
# Updating mapping with values set from form creation
hostConfig["hostname"] = self.hostname.value
hostConfig["domain"] = self.domain.value
hostConfig["fqdn"] = self.fqdn.value
self.parentApp.setNextForm('CEV')
def create(self):
# Defining vars from current baseConfig mapping from JSON file
self.hostname = hostConfig["hostname"]
self.domain = hostConfig["domain"]
self.fqdn = hostConfig["fqdn"]
# Adding text fields with the defaults from the config file
self.hostname = self.add(npyscreen.TitleText, name = "System Hostname:", value = self.hostname)
self.domain = self.add(npyscreen.TitleText, name = "System Domain:", value = self.domain)
self.fqdn = self.add(npyscreen.TitleText, name = "System Fully Qualified Domain Name:", value = self.fqdn)
self.et0status = self.add(npyscreen.FormControlCheckbox, name="Enable Eth0", value = False)
self.et0type = self.add(npyscreen.FormControlCheckbox, name = "Configure as Static Address (ignore for DHCP)", value = False)
self.et0ipaddress = self.add(npyscreen.TitleText, name = "IP Address", value = "127.0.0.1")
self.et0status.addVisibleWhenSelected(self.et0type)
self.et0type.addVisibleWhenSelected(self.et0ipaddress)
def while_editing(self,arg):
if arg is self.et0type:
if arg.hidden:
self.et0type.value = False
经过一系列重构之后,我能够利用adjust_widgets()和一些后台逻辑来解决这个问题,以确保它不会触发太多。你知道吗
相关问题 更多 >
编程相关推荐