Работал над этой проблемой более суток.
Я бы хотел, чтобы мои верхние рамки были прямо на картинке.
Когда я не включаю кадры секции 2 ниже северной рамки, это работает хорошо.
Я посмотрел вверх и попытался с помощью column_configure, пытался вес.
Честно говоря, я, вероятно, неправильно их использую.
Я знаю, что здесь есть исправления, но я еще не думаю о том, как заставить это работать.
Если возможно, не могли бы вы использовать КЛАССЫ или многие необычные ФУНКЦИИ.
Честно говоря, на данный момент я слаб в них на данный момент.
Заранее благодарим за то, что нашли время прочитать и за любую предложенную помощь.
from tkinter import *
import os
import PIL.Image
import random
import sys
import tkinter as tk
global logo
global po
# path to image file
home = os.path.expanduser('~')
dt = desktop_top = os.path.join(home,'Desktop')
p3p = python_3_projects = os.path.join(dt,'Python 3 Projects')
ilfru = images_labeled_for_reuse = os.path.join(p3p,'Images Labeled for Reuse')
gp = gurps_path = os.path.join(ilfru,'GURPS')
gg = gurps_gif = os.path.join(gp,'GIF')
fc = 1
# Count number of file in GURPS/GIF folder
for root, dirs, files in os.walk(gg):
for filenames in files:
fc +=1
# Pick a random number based off number of files
rn = random.randint(1,fc)
# Cycle through files and assign the random file to logo
fc = 1
# Count number of file in GURPS/GIF folder
for root, dirs, files in os.walk(gg):
for filenames in files:
if fc == rn:
logo = os.path.join(gg,filenames)
fc +=1
# Get Image Size
# po PIL Open
po = open(logo,"rb")
img = PIL.Image.open(po)
# Image Width, Image Height
iw,ih = img.size
ih = ih + 5
root = tk.Tk()
# Round Down Nearest tenth
def rd(num,divisor):
x = (num/divisor)-(num%divisor)
x = int(x)
return x
# Get Screen Dimensions
sh = screen_height = root.winfo_screenheight()
sw = screen_width = root.winfo_screenwidth()
# Window size
rg = str(sw)+'x'+str(sh)
root.geometry(rg)
# Create all frames
nwfh = rd(sh, 10)
nwfw = rd(sw, 4)
equal_sides = nwfh + nwfw
equal_sides = rd(equal_sides,4)
ntf = rd(sw-equal_sides,1)
# Frames
spacer_width = rd(equal_sides,10)
frame0 = Frame(root,bg='black',width=sw,height=sh,padx=5,pady=5)
frame0.grid(row=0,column=0)
north_west_top_frame = Frame(frame0, bg='cyan', width=equal_sides, height=equal_sides)
frame_spacer0 = Frame(frame0, bg='beige', width=spacer_width, height=ih)
northern_top_frame = Frame(frame0,bg='alice blue', width=ntf,height=ih,padx=15,pady=15)
# Layout all frames
# Trying configure
# northern_top_frame.grid_columnconfigure(1,weight=1)
# Frame Section 1
north_west_top_frame.grid(row=0,column=0, sticky="nw")
frame_spacer0.grid(row=0, column=1, sticky="w")
northern_top_frame.grid(row=0,column=2)
# Put logo in nw frame
glogo = tk.PhotoImage(file=logo)
gurps_logo = tk.Label(north_west_top_frame, compound = tk.CENTER, text='GURPS\nCHARACTER\nSHEET',fg = "red", font="Helvetica 10 bold", image=glogo).grid(row=0,column=0)
l1 = tk.Label(northern_top_frame, anchor='w', text="Name: ", font = "Helvetica 10 bold",width=17)
l1.grid(row=0, column=0)
e1 = Entry(northern_top_frame)
e1.grid(row=0,column=1)
# Spacer Width = pic prame width -
# ih is northern frame height
# need label height
spacer_height = ih-30
# spacer
# s1 = Frame(northern_top_frame,bg='firebrick', width=ntf,height=spacer_height)
# s1.grid(row=1,column=1, columnspan=11, sticky=tk.W+tk.E)
l4 = tk.Label(northern_top_frame, anchor='w', text="Ht: ", font = "Helvetica 10 bold", width=17)
l4.grid(row=2, column=0)
e4 = Entry(northern_top_frame)
e4.grid(row=2,column=1)
l9 = tk.Label(northern_top_frame, anchor='w', text="Appearance: ", font = "Helvetica 10 bold", width=17)
l9.grid(row=4, column=0)
e9 = Entry(northern_top_frame)
e9.grid(row=4,column=1, columnspan=11, sticky=tk.W+tk.E)
# Section 2
s2 = Frame(frame0,bg='firebrick', width=ntf)
s2.grid(row=5,column=0, sticky="w")
l10 = tk.Label(s2, text="LEVEL")
l10.grid(row=6,column=1)
root.mainloop()