python - 在 Python 中更改每个活动主机的按钮的背景颜色
问题描述
我有 4 个按钮,每个按钮专用于一个主机
如果 ping 成功(绿色)或不成功(红色),我想 ping 每个主机并将按钮背景颜色更改为(绿色或红色)。
我可以在 4 个不同的函数中实现它,但如果它在一个函数中会更好更快
这是功能:
def Check(self):
hosts = ['192.168.178.211', '192.168.178.212', '192.168.178.213', '192.168.178.214']
for i in hosts:
response = os.system("ping -n 1 -w 500 " + i + " > nul")
if response == 0:
self.button1.background_color = green
self.button2.background_color = green
self.button3.background_color = green
self.button4.background_color = green
else:
self.button1.background_color = red
self.button2.background_color = red
self.button3.background_color = red
self.button4.background_color = red
pass
我认为我的代码的问题在于,当一台主机处于活动状态时,它会使所有按钮变为绿色,这是错误的。有时一台主机开启另一台主机关闭,我想用按钮的背景颜色呈现 Live 状态。
解决方案
您可以为按钮创建一个列表并循环枚举并更改右侧按钮的背景颜色。下面是修正后的函数:
def Check(self):
hosts = ['192.168.178.211', '192.168.178.212', '192.168.178.213', '192.168.178.214']
buttons = [self.button1, self.button2, self.button3, self.button4]
for x, i in enumerate(hosts):
response = os.system("ping -n 1 -w 500 " + i + " > nul")
if response == 0:
buttons[x].background_color = green
else:
buttons[x].background_color = red
pass
推荐阅读
- ios - Interface Builder中的视觉效果视图正常,应用程序运行时不正确
- unix - 在 UNIX 上使用 openssl 逐行加密文件
- http - 发出请求时如何利用一块 ipv6 地址
- android - 如何在 Kotlin 中转换时间戳
- node.js - 运行 npm 任务时加载 .env 环境变量
- python - Discord.py 如果无法检查布尔值
- node.js - 节点js非阻塞for循环
- r - “addWorksheet(wb, "sheet1") 中的错误:第一个参数必须是工作簿”
- python - 如何使用 .loc 设置为 pandas 中的其他列值
- python - 将项目附加到python中的字典字典时输出错误