首页 > 解决方案 > 为什么我的 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()

标签: pythonhtmltkinter

解决方案


推荐阅读