如何获得与根窗口尺寸匹配的框架尺寸?

时间:2019-02-02 23:06:46

标签: python tkinter

我在做文字游戏。我将输入小部件用于玩家输入,将文本小部件用于游戏输出,然后将它们放入框架中。我设置了根窗口的几何形状和框架尺寸以适合该几何形状。但是,帧大小小于预期。具体来说,我的CREATE TRIGGER keep_last_module ON module FOR DELETE AS BEGIN IF EXISTS (SELECT * FROM deleted d WHERE NOT EXISTS (SELECT * FROM module m WHERE m.subjectid = d.subjectid AND m.modulenr > d.modulenr)) BEGIN THROW 50000, 'The last module cannot be deleted.', 0; END; END; 比预期的要短。我已经完成了一个教程,不确定现在缺少什么。

function first(num){
       for (let i = num - 1; i > num || 1; i--){
         let numFactorial = i;
          console.log(numFactorial);
       }
    };
  first(100);

1 个答案:

答案 0 :(得分:2)

要使窗口小部件的大小遵循主窗口小部件或窗口的大小,必须指定如何使用columnconfigure()rowconfigure()完成此操作。然后,您必须通过指示grid()粘贴到边缘来扩展小部件以填充可用的单元格空间; sticky='nsew'。查看我的示例:

import tkinter as tk

class Game(tk.Tk):
    def __init__(self, *args, **kwargs):
        super().__init__(*args,**kwargs)
        self.geometry('800x600')
        self.columnconfigure(0, weight=1)  # Specify how columns and rows will 
        self.rowconfigure(0, weight=1)     # change when window size changes.

        # The game's output Text() widget
        self.story_text_field = tk.Text(self)
        self.story_text_field.grid(row=0, column=0, sticky='nsew',
            pady=10, padx=10)  # Sticky expands the widget to fill the cell

        # The player input Entry() widget
        self.player_input_field = tk.Entry(self)
        self.player_input_field.grid(row=1, column=0, pady=(0,10))

Game().mainloop()

我已移除框架以使结构更清晰。我也删除了小部件的颜色。我引入了一些填充,以使结果更令人愉悦,并更改了窗口大小,以便于在小屏幕上轻松处理。

有关grid()的更多信息,我可以推荐effbot的The Tkinter Grid Geometry Manager。您还可以阅读Mike-SMT对Find position of another anchor than the anchor already used的回答,其中详细说明了grid()pack()