python Tkinter Entry 输入框多行数据如何显示

请问大佬,我运用python 的Tkinter里面 Entry函数,在对话框中输入一段很长的文本时,

图片描述

from tkinter import *

import easygui

master = Tk()

frame = Frame(master) # 确定一个框架用于美观

frame.pack(padx = 20,pady = 20)

v1 = StringVar() # 分别用于储存需要计算的数据和 结果

v2 = StringVar()

v3 = StringVar()

e1 = Entry(frame,width=10,textvariable=v1,validate='key',\

).grid(row=0,column=0,pady=10)

Label(frame,text='+',padx=10).grid(row=0,column=1)

e2 = Entry(frame,width=10,textvariable=v2,validate='key',\

).grid(row=0,column=2)

Label(frame,text='=',padx=10).grid(row=0,column=3)

e3 = Entry(frame,width=15,textvariable=v3,state='readonly').grid(row=0,column=4)

def calc():

if v1.get()=='':

easygui.msgbox('请先输入内容 !')

return

result = v1.get() + v2.get()

v3.set(result)

Button(frame,text='计算结果',command=calc).grid(row=1,column=2,pady=5)

mainloop()

回答:

用text框 可以了 记录下

from tkinter import *

import tkinter as tk

import easygui

import requests

master = Tk()

from tkinter import ttk

ttk.Label(master,text='标题:').grid(row=0,column=0)

e1 = ttk.Entry(master,

width=44,

font=('StSong', 14),

foreground='green')

e1.grid(row=1)

ttk.Label(master,text='内容:').grid(row=2,column=0)

e2 = Text(master,

width=44,

height=4,

font=('StSong', 14),

foreground='gray')

e2.grid(row=3,column=0)

# 创建Scrollbar组件,设置该组件与text2的纵向滚动关联

scroll = Scrollbar(master, command=e2.yview)

scroll.grid(row = 3,sticky = tk.N + tk.S+tk.E)

#scroll.pack(side=RIGHT, fill=Y)

## 设置text2的纵向滚动影响scroll滚动条

e2.configure(yscrollcommand=scroll.set)

def calc():

if e1.get()=='':

easygui.msgbox('请先输入内容 !')

return

if e2.get(1.0, END)=='':

easygui.msgbox('请先输入内容 !')

return

user_info = {'title':e1.get(),

'content':e2.get(1.0, END)}

r = requests.post("http://127.0.0.1:5000/cluster/", data=user_info)

e3.insert(INSERT, r.text)

Button(master,text='提交',command=calc,width=10, height=1).grid(row = 4)

e3 = Text(master,

width=44,

height=4,

font=('StSong', 14),

foreground='gray')

e3.grid(row = 5)

# 创建Scrollbar组件,设置该组件与text2的纵向滚动关联

scroll = Scrollbar(master, command=e3.yview)

scroll.grid(row = 5,sticky = tk.N + tk.S+tk.E)

e3.configure(yscrollcommand=scroll.set)

mainloop()

回答:

展示多行的时候,使用Message组件

使用方法:创建一个message, 给它传递一个text字符串。然后这个控件会自动帮你分行。

from Tkinter import *

master = Tk()

w = Message(master, text="this is a message")

w.pack()

mainloop()

更多用法

回答:

你自己都已经说出了你的需求,你需要多行,那就应该去找多文本组件,Text这个组件可以满足你的需求

以上是 python Tkinter Entry 输入框多行数据如何显示 的全部内容, 来源链接: utcz.com/a/158890.html

回到顶部