格式化Tkinter python 3时出现问题

2024-04-24 11:16:19 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我的程序工作,但格式是如此的关闭,我不明白如何使它看起来整洁。你知道吗

我尝试了不同的网格组合,但似乎没有任何效果。It just looks really sloppy我不太确定能做些什么。你知道吗

这是我的密码:

from tkinter import *
import random
from tkinter import ttk

main = Tk()
frame = Frame(main) 
text = Text(main, height=10, width=20)

def complex_password():
    password2 = []
    password2.append(random.choice((captial)))
    count = 0
    x = ""
    while count != 12:
        roll = random.randint(1,4)
        if roll == 1 or roll == 2:
            password2.append(random.choice((letters)))
            count +=1
        if roll == 3 or roll == 4:
            number = random.randint(0,9)
            number = str(number)
            password2.append(number)
            count +=1
        if count == 12:
            password2 = x.join(password2)
            text.insert(INSERT, password2)
            text.insert(INSERT, "\n")

def simple_password():
    y = ""
    password1 = []
    password1.append(random.choice((words)))
    password1.append(random.choice((words)))
    number = random.randint(1,99)
    num = str(number)
    password1.append(num)
    password1 = y.join(password1)
    text.insert(INSERT, password1)
    text.insert(INSERT, "\n")

def clear_text():
    dele = text.delete(1.0, END)
    text.insert(dele)

label = Label(frame, text="Password Generator!!")

simple = Button(frame, text="Simple", command=simple_password)
complex = Button(frame, text="Complex", command=complex_password)
clear = Button(frame, text="Clear", command=clear_text)

text.grid(row=2, column=2)
label.grid(row=1, column=2, columnspan=1)
simple.grid(row=2, column=1)
complex.grid(row=2, column=2)
clear.grid(row=2, column=3)
frame.grid(column=2, row=1)

main.configure(bg="blue3")
frame.configure(bg="blue3")

words = ['Dog', 'Cat', 'Mouse', 'Fire', 'Ice', 'Basket', 'Tree', 'Tiger',      'Lion', 'Flash', 'Super', 'Light', 'Zoom',
     'Speed', 'Pants', 'Shirt', 'Hat', 'Suit', 'Berry', 'Yogurt', 'Epic',   'Keyboard', 'Toe', 'Car', 'Truck', 'Bike', 'Motor', 'Hammer', 'Pizza', 'Heart', 'Arm',
     'Joint', 'Sawg', 'New', 'Carrots', 'Baby', 'Kiss', 'Backspace', 'Enter', 'Alt', 'Print', "Down", 'Up', 'Question', 'Rain', 'Forest',
     'Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Purple', 'Brown', 'Black', 'Indigo', 'Grey', 'Shadow', 'Eye', 'Brick', 'Twig',
     'Gangster', 'Thug', 'Chains', 'Gold', 'Silver', 'Bronze', 'Platinum', 'Titanium', 'Exploding', 'Ladybug', 'Grass',
     'Monkey', 'Rhino', 'Comma', 'Hair', 'Shark', 'Fish']
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
captial = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']

main.mainloop()

Tags: textnumbermaincountcolumnrandomframegrid
1条回答
网友
1楼 · 发布于 2024-04-24 11:16:19

如果您希望按钮居中,那么我的建议是:在外部框架中添加一个新框架,并使用row=2column=2将其网格化;然后将所有按钮放在该框架中,而不是外部框架中。结果如下:

Screenshot 代码如下:

from tkinter import *
import random
from tkinter import ttk 

main = Tk()
frame = Frame(main) 
buttonframe = Frame(frame)
text = Text(main, height=10, width=20)

def complex_password():
    password2 = []
    password2.append(random.choice((captial)))
    count = 0 
    x = ""
    while count != 12: 
        roll = random.randint(1,4)
        if roll == 1 or roll == 2:
            password2.append(random.choice((letters)))
            count +=1 
        if roll == 3 or roll == 4:
            number = random.randint(0,9)
            number = str(number)
            password2.append(number)
            count +=1
        if count == 12:
            password2 = x.join(password2)
            text.insert(INSERT, password2)
            text.insert(INSERT, "\n")

def simple_password():
    y = ""
    password1 = []
    password1.append(random.choice((words)))
    password1.append(random.choice((words)))
    number = random.randint(1,99)
    num = str(number)
    password1.append(num)
    password1 = y.join(password1)
    text.insert(INSERT, password1)
    text.insert(INSERT, "\n")

def clear_text():
    dele = text.delete(1.0, END)

label = Label(frame, text="Password Generator!!")
simple = Button(buttonframe, text="Simple", command=simple_password)
complex = Button(buttonframe, text="Complex", command=complex_password)
clear = Button(buttonframe, text="Clear", command=clear_text)

text.grid(row=2, column=2)
label.grid(row=1, column=2, columnspan=1)
simple.grid(row=2, column=1)
complex.grid(row=2, column=2)
clear.grid(row=2, column=3)
frame.grid(column=2, row=1)
buttonframe.grid(row=2, column=2)

main.configure(bg="blue3")
frame.configure(bg="blue3")

words = ['Dog', 'Cat', 'Mouse', 'Fire', 'Ice', 'Basket', 'Tree', 'Tiger',      'Lion', 'Flash', 'Super', 'Light', 'Zoom',
     'Speed', 'Pants', 'Shirt', 'Hat', 'Suit', 'Berry', 'Yogurt', 'Epic',   'Keyboard', 'Toe', 'Car', 'Truck', 'Bike', 'Motor', 'Hammer', 'Pizza', 'Heart', 'Arm',
     'Joint', 'Sawg', 'New', 'Carrots', 'Baby', 'Kiss', 'Backspace', 'Enter', 'Alt', 'Print', "Down", 'Up', 'Question', 'Rain', 'Forest',
     'Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Purple', 'Brown', 'Black', 'Indigo', 'Grey', 'Shadow', 'Eye', 'Brick', 'Twig', 
     'Gangster', 'Thug', 'Chains', 'Gold', 'Silver', 'Bronze', 'Platinum', 'Titanium', 'Exploding', 'Ladybug', 'Grass',
     'Monkey', 'Rhino', 'Comma', 'Hair', 'Shark', 'Fish']
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
captial = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']

main.mainloop()

相关问题 更多 >