Как переместить запись близко к метке в Python Tkinter - PullRequest
0 голосов
/ 30 сентября 2019

Я новичок в Python и Tkinter, я хочу сделать точно enter image description here

Но мой вывод сейчас:

enter image description here

Я пробовал разные способы, но не могу переместить помеченную желтым цветом строку ввода рядом с поиском, и метка Dictionary: не совпадает с уровнем в текстовом редакторе.

from ttk import Combobox
from tkinter import *

class Init(object):
    def __init__(self):
        root.title('Sample')
        root.geometry('700x300')
        MainFrame()
        DictionaryFrame()

class MainFrame(object):
    def __init__(self):
        self.Textarea()

    def Textarea(self):
        self.txtareaframe = Frame(root)
        self.txtareaframe.grid(row=1, column=0, columnspan=2)
        self.scroll = Scrollbar(self.txtareaframe)
        self.scroll.pack(side=RIGHT, fill=Y)
        self.txtarea = Text(self.txtareaframe, wrap=WORD, yscrollcommand=self.scroll.set, height=10, width=50)
        self.txtarea.pack()
        self.scroll.config(command=self.txtarea.yview)

class DictionaryFrame(object):
    def __init__(self):
        self.dictionaryframe = Frame(root)
        self.dictionaryframe.grid(row=1, column=2, columnspan=2)

        self.emptylbl = Label(self.dictionaryframe, text='')  #This is just a empty space placeholder
        self.emptylbl.grid(row=1, column=3, padx=50)

        self.dictionarylbl = Label(self.dictionaryframe, text='Dictionary: ')
        self.dictionarylbl.grid(row=1, column=4, sticky="w")
        self.dictionarylist = Listbox(self.dictionaryframe)
        self.dictionarylist.grid(row=2, column=4)

        self.searchlbl = Label(self.dictionaryframe, text='Search: ')
        self.searchlbl.grid(row=3, column=4,sticky="w")
        self.searchinput = Entry(self.dictionaryframe, width=25)
        self.searchinput.grid(row=3, column=5)

root = Tk()
Init()
root.mainloop()

1 Ответ

1 голос
/ 30 сентября 2019

Все ваши виджеты расположены в нужных местах. Вам нужно только передать несколько параметров, в основном sticky direction:

from tkinter import *

class Init(object):
    def __init__(self):
        root.title('Sample')
        root.geometry('700x300')
        MainFrame()
        DictionaryFrame()

class MainFrame(object):
    def __init__(self):
        self.txtareaframe = Frame(root)
        self.txtareaframe.grid(row=1, column=0, columnspan=2, sticky="nesw") #1
        self.scroll = Scrollbar(self.txtareaframe)
        self.scroll.pack(side=RIGHT, fill=Y)
        self.txtarea = Text(self.txtareaframe, wrap=WORD, yscrollcommand=self.scroll.set, height=10, width=50)
        self.txtarea.pack(fill="both",expand=True) #2
        self.scroll.config(command=self.txtarea.yview)

class DictionaryFrame(object):
    def __init__(self):
        self.dictionaryframe = Frame(root)
        self.dictionaryframe.grid(row=1, column=2, columnspan=2, sticky="w") #3

        self.emptylbl = Label(self.dictionaryframe, text='')
        self.emptylbl.grid(row=1, column=3, padx=50)

        self.dictionarylbl = Label(self.dictionaryframe, text='Dictionary: ')
        self.dictionarylbl.grid(row=1, column=4, sticky="w")
        self.dictionarylist = Listbox(self.dictionaryframe)
        self.dictionarylist.grid(row=2, column=4, columnspan=2, sticky="ew") #4

        self.searchlbl = Label(self.dictionaryframe, text='Search: ')
        self.searchlbl.grid(row=3, column=4, sticky="w")
        self.searchinput = Entry(self.dictionaryframe, width=25)
        self.searchinput.grid(row=3, column=5)

root = Tk()
Init()
root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...