Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter输入框未显示_Python_Tkinter - Fatal编程技术网

Python Tkinter输入框未显示

Python Tkinter输入框未显示,python,tkinter,Python,Tkinter,我正在制作一个消息传递程序,由于某种原因,我的标题为“原始输入”的输入框没有出现 代码: 从tkinter导入* 导入日期时间 def发送消息(事件): #这是一个占位符,因为没有它会给我一个错误 q=“你好” #删除占位符,然后在此处删除您的代码 #***初始化窗口*** root=Tk() root.title(“安全消息”) root.configure(background='grey') screen\u width=root.winfo\u screenwidth() screen\

我正在制作一个消息传递程序,由于某种原因,我的标题为“原始输入”的输入框没有出现

代码:

从tkinter导入*
导入日期时间
def发送消息(事件):
#这是一个占位符,因为没有它会给我一个错误
q=“你好”
#删除占位符,然后在此处删除您的代码
#***初始化窗口***
root=Tk()
root.title(“安全消息”)
root.configure(background='grey')
screen\u width=root.winfo\u screenwidth()
screen\u height=root.winfo\u screenheight()
几何体(“%sx%s%”(int(屏幕宽度/2)、int(屏幕高度/2)))
#***连接时间聊天框***
聊天框=列表框(根,宽度=屏幕宽度,高度=屏幕高度/2-450)
chat_box.insert(END,'Connection:'+str(datetime.datetime.now())
聊天室。请参阅('end')
聊天室网格(行=0)
#***输入框***
l1=标签(根,text=“输入:”).grid(行=1,粘性=W)
原始输入=条目(根)
原始输入网格(行=1,粘滞=E)
原始输入。焦点()
原始输入绑定(“”,发送消息)
#***运行主循环***
root.mainloop()

任何帮助都将不胜感激。谢谢

问题的原因是列表框的宽度和高度单位是字符,因此您正在设置创建一个HuuUuge列表框,它覆盖了列表框下的所有其他内容。此外,通过指定根几何体,您正在设置一个静态窗口大小,该大小不足以包含您在其中放置的所有小部件。通常,让几何体管理器处理拟合操作会更好

一种方法是使用columnspan来提供一些帮助,比如

chatbox.grid(row=0, column=0, columnspan=2, sticky=NSEW)
...
l1 = Label(root, text="Input:")
l1.grid(row=0, column=0, sticky=EW)
grid_column
...
raw_input.grid(row=1, column=1, sticky=EW)
root.columnconfigure(0, weight=0)
root.columnconfigure(1, weight=1)
root.rowconfigure(0, weight=1)

(需要注意的是:您正在代码中将grid()的返回值指定给l1。这是无的,可能会给您带来问题,您需要首先指定小部件。)

通过将粘滞更改为EW,原始输入将扩展以填充其单元格,标签也将如此。通过设置列的权重,如果用户更改窗口大小,它们将随窗口大小进行调整

您还可以将pack与另一个框架一起用于条目小部件和标签。这里是您的代码调整使用它

from tkinter import *
import datetime

def send_message(event):
    #this is a placeholder cuz without it it would give me an error
    q = "hi"
    #delete placeholder then your code here

# *** Initalize Window ***
root = Tk()
root.title("Secure MSG")
root.configure(background='grey')

# *** Connection Time Chat Box ***
chat_box = Listbox(root)
chat_box.insert(END, 'Connection: ' + str(datetime.datetime.now()))
chat_box.see('end')
chat_box.pack(side=TOP, fill=BOTH, expand=True)
# *** Input Box ***

tempFrame = Frame(root)
tempFrame.pack(side=TOP, fill=X)
l1 = Label(tempFrame, text="Input:", width=5)
l1.pack(fill=X)

raw_input = Entry(tempFrame)
raw_input.pack(fill=X, expand=True)
raw_input.focus()
raw_input.bind('<Return>', send_message)

# *** Run Mainloop ***
root.mainloop()
从tkinter导入*
导入日期时间
def发送消息(事件):
#这是一个占位符,因为没有它会给我一个错误
q=“你好”
#删除占位符,然后在此处删除您的代码
#***初始化窗口***
root=Tk()
root.title(“安全消息”)
root.configure(background='grey')
#***连接时间聊天框***
聊天室=列表框(根)
chat_box.insert(END,'Connection:'+str(datetime.datetime.now())
聊天室。请参阅('end')
chat_box.pack(side=TOP,fill=BOTH,expand=True)
#***输入框***
tempFrame=帧(根)
tempFrame.pack(侧面=顶部,填充=X)
l1=标签(tempFrame,text=“输入:”,宽度=5)
l1.包装(填充=X)
原始输入=输入(tempFrame)
原始输入包(fill=X,expand=True)
原始输入。焦点()
原始输入绑定(“”,发送消息)
#***运行主循环***
root.mainloop()
这将创建一个随用户调整大小而调整的窗口

from tkinter import *
import datetime

def send_message(event):
    #this is a placeholder cuz without it it would give me an error
    q = "hi"
    #delete placeholder then your code here

# *** Initalize Window ***
root = Tk()
root.title("Secure MSG")
root.configure(background='grey')

# *** Connection Time Chat Box ***
chat_box = Listbox(root)
chat_box.insert(END, 'Connection: ' + str(datetime.datetime.now()))
chat_box.see('end')
chat_box.pack(side=TOP, fill=BOTH, expand=True)
# *** Input Box ***

tempFrame = Frame(root)
tempFrame.pack(side=TOP, fill=X)
l1 = Label(tempFrame, text="Input:", width=5)
l1.pack(fill=X)

raw_input = Entry(tempFrame)
raw_input.pack(fill=X, expand=True)
raw_input.focus()
raw_input.bind('<Return>', send_message)

# *** Run Mainloop ***
root.mainloop()