我有:
$number = 430;
$array = Array
[0] => Array
(
[value] => 405
[information] => some information1
)
[1] => Array
(
[value] => 500
[information] => some information2
)
[2] => Array
(
[value] => 700
[information] => some information3
)
$firstArray = $array[0];
$secondArray = $array[1];
$threeArray = $array[2];
function selectValueFromArrayRange ($number, $start, $end, $value, $infomation)
{
$startValue = $start[$value];
$endValue = $end[$value];
if ( in_array($number, range($startValue, $endValue)) ) {
return $end[$infomation];
}
}
selectValueFromArrayRange($number, $firstArray, $secondValue, 'value', 'infomation')
使用try: # In order to be able to import tkinter for
import tkinter as tk # either in python 2 or in python 3
except ImportError:
import Tkinter as tk
if __name__ == '__main__':
root = tk.Tk()
rgb = {'red', 'green', 'blue'}
frames = dict()
for color in rgb:
frames[color] = tk.Frame(root, height=64, width=64, bg=color)
frames['red'].grid(row=0, column=0)
frames['green'].grid(row=1, column=0)
frames['blue'].grid(row=1, column=1)
root.mainloop()
进行布局。如何仅使用grid
而使用而不使用使用其他小部件来设置相同的L形布局?
pack
'父母(不一定是顶级)只有3个Frames
作为孩子。理想情况下,布局应该可以调整大小。
答案 0 :(得分:2)
在这种特定情况下,如果您希望每个帧占据屏幕的1/4并在窗口调整大小时展开,pack
根本无法执行此操作。在调整窗口大小时,无法使用pack
并且没有额外的帧可以让左上角的小部件占据屏幕的1/4。
Tkinter同时拥有pack
和grid
,因为它们解决了两种不同类型的布局问题。如果他们能够轻松解决所有相同的问题,就不需要同时解决这些问题。
答案 1 :(得分:0)
无法完成。下面的演示显示了每个side
选项可能的所有形状:
import tkinter as tk
class ParentFrame(tk.Frame):
def __init__(self, master):
tk.Frame.__init__(self, master)
self._colors = ('red', 'green', 'blue')
self._c_len = len(self._colors)
self.labels = dict()
self._i = 0
self._create_widgets()
self.side_combinations()
def _create_widgets(self):
for _color in self._colors:
self.labels[_color] = tk.Label(self, height=16, width=16,
fg='white', bg=_color)
def side_combinations(self):
_side_opts = ('top', 'bottom', 'left', 'right')
_o_len = len(_side_opts)
if self._i < (_o_len**3):
_cur_opt = dict()
_cur_opt['red'] = _side_opts[self._i//(_o_len**2)]
_cur_opt['green'] = _side_opts[(self._i//_o_len) % _o_len]
_cur_opt['blue'] = _side_opts[self._i%_o_len]
for _clr in self._colors:
self.labels[_clr].pack(side=_cur_opt[_clr])
self.labels[_clr]['text'] = _cur_opt[_clr]
self._i += 1
self.after(250, self.side_combinations)
else:
self._i = 0
if __name__ == '__main__':
root = tk.Tk()
test = ParentFrame(root)
test.pack(fill='both', expand=True)
root.mainloop()
答案 2 :(得分:0)
frames['red'].pack(anchor=tk.W)
frames['green'].pack(side=tk.LEFT)
frames['blue'].pack()
但你为什么要这样做?使用框架可以更容易地将框架用于整齐的行或列,然后将它们打包成更复杂的结构。