我正在学习Python,有一个关于.grid()方法的问题。
在作者给出的示例中,他正在使用*进行导入:from tkinter import *
from tkinter import ttk, filedialog, messagebox
import base64
import json
import os
from bs4 import BeautifulSoup
import requests
然后,他创建根窗口和主框架,如下所示:
^{pr2}$
到目前为止还不错,我都明白了。问题开始于他说,由于名称冲突,用*导入不是一个好的实践,所以在我尝试创建一个类似于良好实践的想法时,我这样做了:import tkinter as tk
from tkinter import ttk, messagebox, filedialog
import base64
import json
import os
from bs4 import BeautifulSoup
import requests
root_window = tk.Tk()
root_window.title('My first attemp of custom guiscrape')
root_window.resizable(width=False, height=False)
# First Frame
g_main_frame = ttk.Frame(root_window, padding='5 5 5 5')
g_main_frame.grid(row=0, column=0, sticky='NSWE')
g_url_frame = ttk.LabelFrame(g_main_frame, text='URL', padding='5 5 5 5')
g_url_frame.grid(row=0, column=0, sticky='EW')
g_url_frame.columnconfigure(0, weight=1)
g_url_frame.rowconfigure(0, weight=1)
var_url = tk.StringVar()
var_url.set('http://localhost:8000')
g_url_entry = ttk.Entry(g_url_frame, width=40, textvariable=var_url)
g_url_entry.grid(row=0, column=0, sticky='NESW', padx=5)
root_window.mainloop()
问题是什么时候_大型机.grid在作者的例子中,()出现时,sticky选项得到一个包含四个常量的元组,但是当我尝试给出一个元组时,我得到了一个错误,常数E没有定义,所以我必须使用一个类似“NEWS”的字符串,这与作者的方法(N,E,W,s)有很大不同。在
它与tkinter和ttk的网格方法有区别吗?使用它的最佳方法是什么?我找不到更多关于ttk的文档可以解决我的疑问,希望你能帮忙!在