如何在我的Python应用中添加自定义TKINTER TEXTBOX



所以我一直在使用python从SQL到Excel或CSV进行我的'ETLS'。我刚刚发现它比使用SSIS更快,更容易。

虽然我在jupyter中这样做时,我认为将其包装到可以与他人共享的应用程序中是一个有趣的练习。我不是TKINTER最精通的,并且正在尝试添加一个自定义大小的文本框,该文本框比复制/粘贴查询的标准文本框好一些。问题是当我添加文本框时,它会调整应用程序窗口的设置。

这是我到目前为止所拥有的:

#Load Libraries
import pandas as pd
import numpy as np
import pyodbc
import xlsxwriter
from pandas import ExcelWriter 
import openpyxl
import os
import datetime
from tkinter import *
#create window    
def conVar():
    server = e1.get()
    db =  e2.get()
    un = e3.get()
    pw = e4.get()
    conn=("DRIVER={SQL Server};SERVER=%s;DATABASE=%s;UID=%s;PWD=%s" % (server, db, un, pw))
    print(conn)
root = Tk()
root.title("SQL2Excel")
root.geometry("500x500")
Label(root, text="Server").grid(row=0)
Label(root, text="Database").grid(row=1)
Label(root, text="Username").grid(row=2)
Label(root, text="pw").grid(row=3)
Label(root, text="Tables").grid(row=6)
Label(root, text="or Enter Query").grid(row=7)
variable = StringVar(root)
variable.set("                                                                       ") 
w = OptionMenu(root, variable, "test1", "test2", "test3")
r = root
r.geometry("250x150")
t = Text(r, height=20, width=40)
e1 = Entry(root)
e2 = Entry(root)
e3 = Entry(root)
e4 = Entry(root, show="*")
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
e3.grid(row=2, column=1)
e4.grid(row=3, column=1)
w.grid(row=6, column=1)
t.grid(row=8, column=1)

Button(root, text='Quit', command=root.destroy).grid(row=4, column=0, sticky=W, pady=4)
Button(root, text='Test Connection', command=conVar).grid(row=4, column=1, sticky=W, pady=4)
root.mainloop()

这个想法是,一旦输入了连接信息,我将将表列表列入ComboBox,或者让用户复制并将查询粘贴到较大的文本框中。我真的觉得我缺少一些简单的东西,但在这一点上挣扎。

有人可以帮助我向我展示我的方式错误吗?谢谢。

您的代码正在更改根窗口的大小

root.title("SQL2Excel")
root.geometry("500x500") 
r = root
r.geometry("250x150")

相反,尝试更改组合的几何形状。

另外,我在您的代码中看不到combobox

最新更新