Нужно подвинуть Entry к левому краю, а scrolledtext растянуть до конца окна вниз.
#!/usr/bin/env python
import os
import sys
import pyperclip
from tkinter import *
import tkinter as tk
from tkinter import ttk
from tkinter import scrolledtext
from tkinter import filedialog as fd
class MainWindow(tk.Frame):
def __init__(self, root):
super().__init__(root)
self.init_main()
def init_main(self):
self.img_cache = []
lb_dir = Label(bg="#dedede")
lb_dir.pack(padx=60)
self.edir = Entry(width=40, font="Alef 11", fg="black", bg="#ccc")
self.edir.pack()
self.paste_img = PhotoImage(file='3.png')
self.btn_dir = tk.Button(text='open', fg="black", bg="#ccc", width=20, compound='left', command=self.callback)
self.btn_dir.place(x=520, y=20)
self.stop_img = PhotoImage(file='4.png')
self.btn_stop = tk.Button(text='run', fg="black", bg="#ccc", width=60, height=1, compound='left', command=lambda: self.BMW(self.edir.get()))
self.btn_stop.place(x=20, y=65)
self.console = scrolledtext.ScrolledText(fg="black", bg="#ccc", bd=3, state='disable', font="Alef 9")
self.console.pack(pady=100)
def close_(self):
sys.exit()
def insert_to_console(self, text):
self.console.configure(state='normal') # enable insert
self.console.insert(END, text)
self.console.yview(END) # autoscroll
self.console.configure(state='disabled')
def BMW(self, filename):
self.insert_to_console(filename + "\n")
def callback(self):
self.edir.delete(0, END)
self.name= fd.askopenfilename()
self.edir.insert(0, self.name)
def run_app():
root = tk.Tk()
root.resizable(width=False, height=False)
MainWindow(root)
root.title("BMW")
root.geometry("620x500")
root.configure(bg="#dedede")
root.mainloop()
if __name__ == '__main__':
bmw = MainWindow
bmw.run_app()
Пробовал несколько способов, через pack() указывал координаты, но Entry просто выровнен по центру и не двигается. scrolledtext же меняется только если я меняю высоту главного окна.
Каким способом я могу позиционировать эти элементы в данном примере ?