📄 formsplit.py
字号:
# A FormSplit lets you place its children exactly where you want them# (including silly places!).# It does no explicit geometry management except moving its children# when it is moved.# The interface to place children is as follows.# Before you add a child, you may specify its (left, top) position# relative to the FormSplit. If you don't specify a position for# a child, it goes right below the previous child; the first child# goes to (0, 0) by default.# NB: This places data attributes named form_* on its children.# XXX Yes, I know, there should be options to do all sorts of relative# placement, but for now this will do.from Split import Splitclass FormSplit(Split): # def create(self, parent): self.next_left = self.next_top = 0 self.last_child = None return Split.create(self, parent) # def getminsize(self, m, sugg_size): max_width, max_height = 0, 0 for c in self.children: c.form_width, c.form_height = c.getminsize(m, (0, 0)) max_width = max(max_width, c.form_width + c.form_left) max_height = max(max_height, \ c.form_height + c.form_top) return max_width, max_height # def getbounds(self): return self.bounds # def setbounds(self, bounds): self.bounds = bounds fleft, ftop = bounds[0] for c in self.children: left, top = c.form_left + fleft, c.form_top + ftop right, bottom = left + c.form_width, top + c.form_height c.setbounds(((left, top), (right, bottom))) # def placenext(self, left, top): self.next_left = left self.next_top = top self.last_child = None # def addchild(self, child): if self.last_child: width, height = \ self.last_child.getminsize(self.beginmeasuring(), \ (0, 0)) self.next_top = self.next_top + height child.form_left = self.next_left child.form_top = self.next_top Split.addchild(self, child) self.last_child = child #
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -