如何解决如何在python tkinter中使两个按钮彼此相邻并居中?
我正在建立一个emial客户,我希望两个按钮(发送邮件和重置)在水平方向(而不是垂直方向)彼此相邻。预先感谢(出于安全目的,我的电子邮件和密码已替换为asterix)
代码:
from tkinter import *
import tkinter as tk
from email.message import EmailMessage
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
window=Tk()
window.title('Email Client')
window.geometry('450x370')
window.iconbitmap('D:\PYTHON\IMAGES\icon_for_email_clien_Jy16u.ico')
textbox2=Text(window,width=50,height=10,bg='light grey')
label2=Label(window,text='Message')
textbox1=Text(window,height=1,bg='light grey')
textbox3=Text(window,bg='light grey')
label4=Label(window,text='Directory of File Attachment')
label1=Label(window,text='Subject')
label3=Label(window,text='')
def email_alert(subject,body,to):
msg = EmailMessage()
msg.set_content(body)
msg['subject'] = subject
msg['to'] = to
user = "******************"
msg['from'] = user
password = "***********"
server = smtplib.SMTP("smtp.gmail.com",587)
server.starttls()
server.login(user,password)
server.send_message(msg)
server.quit()
if __name__ == '__main__':
def Send():
gd = textbox3.get('1.0','end-1c')
dialog = textbox2.get('1.0','end-1c')
subject = textbox1.get('1.0','end-1c')
body = dialog
try:
fromaddr = "********************"
toaddr = "*******************"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = subject
body = dialog
msg.attach(MIMEText(body,'plain'))
filename = "Homework Attachment"
attachment = open(gd,"rb")
p = MIMEBase('application','octet-stream')
p.set_payload((attachment).read())
encoders.encode_base64(p)
p.add_header('Content-Disposition',"attachment; filename= %s" % filename)
msg.attach(p)
s = smtplib.SMTP('smtp.gmail.com',587)
s.starttls()
s.login(fromaddr,"*************")
text = msg.as_string()
s.sendmail(fromaddr,toaddr,text)
s.quit()
except:
email_alert(subject,dialog,"************************")
def Reset():
textbox1.delete('1.0','end-1c')
textbox2.delete('1.0','end-1c')
textbox3.delete('1.0','end-1c')
label1.pack()
textbox1.pack()
label4.pack()
textbox3.pack()
label2.pack()
textbox2.pack()
label3.pack()
button1=Button(window,text='Send Email',width=15,command=Send)
button1.pack()
button2=Button(window,text='Reset',command=Reset)
button2.pack(pady = 10)
window.mainloop()
图片:
下面的两个按钮(称为发送电子邮件和重置),我希望它们在水平方向上彼此相邻,以使GUI看起来更具吸引力。但是,我在执行此操作时遇到了麻烦,但找不到适合我查询的答案。任何帮助都非常感谢:D
解决方法
您必须在包中使用更多参数才能实现此目的。
- 侧面〜包装的侧面
- 锚点〜将小部件放置在打包区域中的位置
- expand〜是否使单元格扩展以接触其邻居
button1=Button(window,text='Send Email',width=15,height=1,command=Send)
button1.pack(side='left',anchor='e',expand=True)
button2=Button(window,text='Reset',command=Reset)
button2.pack(side='right',anchor='w',expand=True)
,
这是工作代码,所以我修改了程序中的某些语句以使用Frame和grid而不是简单地打包。这是代码
...
label1.pack()
textbox1.pack()
label4.pack()
textbox3.pack()
label2.pack()
textbox2.pack()
label3.pack()
buttonframe = Frame(window)
buttonframe.pack()
button1=Button(buttonframe,command=Send)
button1.grid(row=0,column=0,padx=5,pady=5)
button1.grid_rowconfigure(0,weight=1)
button2=Button(buttonframe,command=Reset)
button2.grid(row=0,column=1,pady=5)
window.mainloop()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。