python - 为什么我的 Tkinter 按钮不执行我的功能?
问题描述
我已经用 Tkinter 编写了一个 UI,并尝试从用户那里获取输入,然后将这些输入提取到 HTML 包装器中,保存文件,然后在浏览器中打开,让他们复制并粘贴到 Outlook 中。我觉得它应该工作,但它没有。当我单击提交按钮时,没有任何反应。
有任何想法吗?
from tkinter import *
import os
os.system ('clear')
root = Tk()
root.title('Signature Generator')
root.geometry("400x600")
fNameVar = StringVar()
lNameVar = StringVar()
pronounsVar = StringVar()
titleVar = StringVar()
emailVar = StringVar()
phoneVar = StringVar()
def signature(fName, lName, pronoun, title, phone, email):
from webbrowser import open_new_tab
filename = 'signature.html'
f = open(filename,'w')
emailLink = email
wrapper = """<!DOCTYPE html>
<html>
<head>
<title>Signature</title>
<style>
body {
font-family: Calibri, Helvetica, Arial, sans-serif;
font-size: 12pt;
}
.firstLine {
color: #1c478c;
}
table, tr, td {
padding:0;
margin:0;
}
</style>
</head>
<body>
<table>
<tr>
<td style="margin-top:3px;">
image block
</td>
<td style="padding-left: 20px;">
<table>
<tr>
<td>
<span class="firstLine">
<span style="font-weight: bold;">%s %s</span> <span style="font-style: italic;">(<span style="font-style: italic; font-size: 12pt;">%s)</span>
</span><br />
</td>
</tr>
<tr>
<td>
%s
</td>
</tr>
<tr height="7">
<td height="7">
</td>
</tr>
<tr>
<td>
<a href="mailto:%s">%s</a>
</td>
</tr>
<tr>
<td>
%s
</td>
</tr>
<tr height="7">
<td height="7">
</td>
</tr>
<tr>
<td>
<a href="https://google.com">google.com</a>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>"""
whole = wrapper % (fName, lName, pronoun, title, emailLink, email, phone)
f.write(whole)
f.close()
open_new_tab(filename)
firstName = Label(root, text="First Name:")
firstName.pack()
firstNameEntry = Entry(root, textvariable=fNameVar, width=30)
firstNameEntry.pack()
lastName = Label(root, text="Last Name:")
lastName.pack()
lastNameEntry = Entry(root, textvariable=lNameVar, width=30)
lastNameEntry.pack()
pronouns = Label(root, text="Pronouns (she/her/hers):")
pronouns.pack()
pronounsEntry = Entry(root, textvariable=pronounsVar, width=30)
pronounsEntry.pack()
title = Label(root, text="Title:")
title.pack()
titleEntry = Entry(root, textvariable=titleVar, width=30)
titleEntry.pack()
phoneNumber = Label(root, text="Phone Number:")
phoneNumber.pack()
phoneNumberEntry = Entry(root, textvariable=phoneVar, width=30)
phoneNumberEntry.pack()
emailAddress = Label(root, text="Email Address:")
emailAddress.pack()
emailAddressEntry = Entry(root, textvariable=emailVar, width=30)
emailAddressEntry.pack()
submitButton = Button(root, text="Submit", command=signature(fNameVar, lNameVar, pronounsVar, titleVar, phoneVar, emailVar))
submitButton.pack()
root.mainloop()
解决方案
推荐阅读
- windows - 在 Qt 中创建 Native Window 的代码不起作用:Windows 不显示
- php - PHP中的自动加载器,没有作曲家或任何其他非类文件的库
- c# - C# 使用正则表达式或常规迭代解析字符串
- python - Python模拟对象迭代器无法迭代多次
- javascript - 谷歌分析:产品详情浏览量指标不计算在内
- javascript - 如何使用当前登录的 Windows Active Directory 用户登录 Web 应用程序?
- postgresql - 无法在 docker postgres 容器上安装 cstore_fdw
- amazon-web-services - 将文件从 s3 存储桶复制到另一个 AWS 账户
- javascript - Cordova/Phonegap 在传入 webrtc 电话时唤醒应用程序
- php - 使用验证模型将逗号分隔值插入数据库