当我编写代码时,我多次发现以下情况:
def Mwindow_stayontop(self, event):
if CFG["AlwOnTop"] == 1:
self.SetWindowStyle(wx.DEFAULT_FRAME_STYLE)
CFG["AlwOnTop"] = 0
else:
self.SetWindowStyle(wx.DEFAULT_FRAME_STYLE | wx.STAY_ON_TOP)
CFG["AlwOnTop"] = 1
有人能想到一种更简单的方法吗?我试图使用SIN和COS来交替0和1之间的值,但不能。
想法?
答案 0 :(得分:2)
CFG["AlwOnTop"] = 1 - CFG["AlwOnTop"]
或
CFG["AlwOnTop"] = not CFG["AlwOnTop"]
完整的功能可以是:
def Mwindow_stayontop(self, event):
CFG["AlwOnTop"] = 1 - CFG["AlwOnTop"]
self.SetWindowStyle(wx.DEFAULT_FRAME_STYLE | CFG["AlwOnTop"]*wx.STAY_ON_TOP)
虽然有些人可能认为太压缩了。
答案 1 :(得分:1)
这是一个简短的版本:
def Mwindow_stayontop(self, event):
CFG["AlwOnTop"] = not CFG["AlwOnTop"]
self.setWindowStyle(wx.DEFAULT_FRAME_STYLE |
(wx.STAY_ON_TOP if CFG["AlwOnTop"] else 0))
如果您想将AlwOnTop视为布尔属性,您可以使用0为False且1为True的事实。 not
将交替各州。