Кнопки позиционирования и вход в python tkinter - PullRequest
0 голосов
/ 25 мая 2020

Начнем с того, что я новичок в этом, но я экспериментировал с разными вещами.

Я установил размер своего холста 500 на 500, но он превышает это значение из-за кнопок и позиций входа (Думаю). Как мне расположить обе мои кнопки и мою запись наверху холста?

from tkinter import *

root = Tk()
root.resizable(width=False, height=False)

w = Canvas(root, width=500, height=500)
w.pack()

textInput = Entry(root, width=50, borderwidth=2)
textInput.pack()
textInput.get()


def myClick():
    myLabel = Label(root, text=textInput.get())
    myLabel.pack()


def shutDown():
    exitProgram = exit()
    exitProgram.pack()


myButton = Button(root, text="Start", command=myClick)
myButton.pack(side=LEFT, padx=20, pady=25)
myButton2 = Button(root, text="Stop", command=shutDown)
myButton2.pack(side=RIGHT, padx=20, pady=25)

mainloop()

enter image description here

Ответы [ 3 ]

0 голосов
/ 25 мая 2020

Ну, я не уверен, почему вы должны установить такой размер экрана, но если я могу предложить лучший способ сделать это, я обычно устанавливаю размер холста прямо в экземпляре root следующим образом:

root = Tk()
root.geometry("100x100") // Whatever size you want

и для размещения элементов на экране у вас есть три основных варианта:

pack() - организует виджеты в блоки перед их размещением в родительском виджете.

grid() - организует виджеты в виде таблицы в родительском виджете.

place() - организует виджеты, помещая их в определенную позицию c в родительском виджете, с помощью этой опции вы можете установите элементы на указанные c x и y на экране.

element.place(x=10, y=10)
element.grid(row=2, column=2)
element.pack()
0 голосов
/ 25 мая 2020

Вы можете установить размер холста с помощью функции Tk().geometry:

root = Tk()
length = 100, width = 100 #Set the length and the width
root.geometry("{}x{}".format(length, width)) #Whatever size you want

Вы можете разместить элемент, используя:

elem.place(x = 1, y = 1) #places element by (x, y) value, has very few options and is not commonly used
elem.pack() #Moves element to the next available row
elem.grid(row = 0, column = 0) #Places elements in a grid format, with 'row' and 'column' starting at 0, has multiple other options and is most common

'''
elem.grid(row = row, column = column) is recommended
plain running elem.grid() with no row or column is the same as elem.pack()
'''
0 голосов
/ 25 мая 2020

Вы можете указать, где вы хотите разместить виджеты при их создании.

from tkinter import *


root = Tk()
root.resizable(width=False, height=False)

w = Canvas(root, width=500, height=500)
w.pack()


textInput = Entry(w, width=50, borderwidth=2)  # w, instead of root
textInput.pack()


def myClick():
    myLabel = Label(root, text=textInput.get())
    myLabel.pack()


def shutDown():
    exitProgram = exit()
    exitProgram.pack()


myButton = Button(w, text="Start", command=myClick)  # w, instead of root
myButton.pack(side=LEFT, padx=20, pady=25)
myButton2 = Button(w, text="Stop", command=shutDown)  # w, instead of root
myButton2.pack(side=RIGHT, padx=20, pady=25)


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