在界面中添加多个label和对应entry
1. 目的
在工业用软件中,往往需要输入很多参数,才能支撑后面的分析操作,这样的界面就不单单是QQ输入界面那样只有两三个标签label和输入框entry控件,而是二三十个甚至更多。
如何更方便,使用更少的程序完成这样的功能呢?还有entry是不是还要考虑到后续的调用,之类的问题。
2. 添加多个label控件(third_interface.py)
label控件一般是用来显示 提示文字 的,所以我觉得只要简单实现少程序即可,没有什么忌讳。
from tkinter import *
def create_2(x):
# secondwindow.destroy() #第二界面消失!!!尚未解决!!!望指点
thirdwindow = Tk() # 第三界面出现,照旧设置。
thirdwindow.title("软件第三界面")
thirdwindow.geometry("1000x600")
thirdwindow.configure(bg="AliceBlue")
thirdwindow.resizable(False, False)
#添加panedframe和frame,使得窗口上有三个区域,且能够左右、上下拉伸。
pw_th = PanedWindow(thirdwindow,orient='vertical',sashrelief='sunken') #(放在哪,其子控件竖直放置[pw_th_top和bottom上下放],分割线样式为sunken)
pw_th.pack(fill='both', expand=1) #放置,填充整个窗口,可拉伸。
pw_th_top = PanedWindow(pw_th,orient='horizontal',sashrelief='sunken') #(放pw_th里,其子控件水平放置[fm_th_left和right左右放])
pw_th_bottom = PanedWindow(pw_th, orient='horizontal', sashrelief='sunken') #(放pw_th里,其子控件水平放置[fm_th_bottom左右放])
fm_th_left = Frame(pw_th_top,width=200,relief='sunken') #添加左右下3个frame
fm_th_right = Frame(pw_th_top, height=450, relief='sunken')
fm_th_bottom = Frame(pw_th_bottom, relief='sunken')
#将所有的panedframe和frame加到相应项里。
pw_th.add(pw_th_top),pw_th.add(pw_th_bottom),pw_th_top.add(fm_th_left),pw_th_top.add(fm_th_right),pw_th_bottom.add(fm_th_bottom)
# 标签显示该界面是点击了哪个按钮来的(放fm_th_left上)
if x == 'a':
la_th_1 = Label(fm_th_left,text="您现在将在爱迪奥特曼\n的指导进行相关操作~",font=('微软雅黑 15 bold'))
la_th_1.pack(anchor=N)
elif x == 'b':
la_th_1 = Label(fm_th_left, text="您现在将在迪迦奥特曼\n的指导进行相关操作~", font=('微软雅黑 15 bold'))
la_th_1.pack(anchor=N)
elif x == 'c':
la_th_1 = Label(fm_th_left, text="您现在将在赛文奥特曼\n的指导进行相关操作~", font=('微软雅黑 15 bold'))
la_th_1.pack(anchor=N)
elif x == 'd':
la_th_1 = Label(fm_th_left, text="您现在将在泰罗奥特曼\n的指导进行相关操作~", font=('微软雅黑 15 bold'))
la_th_1.pack(anchor=N)
#多个标签的添加(放fm_th_right上)
#这个数列的形式,大家稍作了解就能明白。
lname_arr_1 = ['奥特曼之王', '奥特之父', '奥特之母', 'M78星云的宇宙坐标', \
'奥特全能王', '第一部奥特曼上映时间', '奥特之星体积', '奥特之星重力', '最老的奥特曼', \
'最年轻的奥特曼', '奥特之父&母的孩子', '梦比优斯的师傅', '红十字的会长', \
'警备队的大队长', '奥特警备队的队长', '雷欧的徒弟']
lnum_1 = 0
for name_1 in lname_arr_1:
Label(fm_th_right, text=name_1, width=17).grid(row=0 + lnum_1, column=0) #同列不同行,所以设置一个“row=0 + lnum_1”
lnum_1 += 1 #每执行一次,就加一,也就处于下一行了。
3. 添加对应的输入框(third_interface.py)
这里考虑到我后面要从MATLAB中调用这些输入参数,所以就一个一个的添加entry了。
from tkinter import *
def create_2(x):
# secondwindow.destroy() #第二界面消失!!!尚未解决!!!望指点
thirdwindow = Tk() # 第三界面出现,照旧设置。
thirdwindow.title("软件第三界面")
thirdwindow.geometry("1000x600")
thirdwindow.configure(bg="AliceBlue")
thirdwindow.resizable(False, False)
#添加panedframe和frame,使得窗口上有三个区域,且能够左右、上下拉伸。
pw_th = PanedWindow(thirdwindow,orient='vertical',sashrelief='sunken') #(放在哪,其子控件竖直放置[pw_th_top和bottom上下放],分割线样式为sunken)
pw_th.pack(fill='both', expand=1) #放置,填充整个窗口,可拉伸。
pw_th_top = PanedWindow(pw_th,orient='horizontal',sashrelief='sunken') #(放pw_th里,其子控件水平放置[fm_th_left和right左右放])
pw_th_bottom = PanedWindow(pw_th, orient='horizontal', sashrelief='sunken') #(放pw_th里,其子控件水平放置[fm_th_bottom左右放])
fm_th_left = Frame(pw_th_top,width=200,relief='sunken') #添加左右下3个frame
fm_th_right = Frame(pw_th_top, height=450, relief='sunken')
fm_th_bottom = Frame(pw_th_bottom, relief='sunken')
#将所有的panedframe和frame加到相应项里。
pw_th.add(pw_th_top),pw_th.add(pw_th_bottom),pw_th_top.add(fm_th_left),pw_th_top.add(fm_th_right),pw_th_bottom.add(fm_th_bottom)
# 标签显示该界面是点击了哪个按钮来的(放fm_th_left上)
if x == 'a':
la_th_1 = Label(fm_th_left,text="您现在将在爱迪奥特曼\n的指导进行相关操作~",font=('微软雅黑 15 bold'))
la_th_1.pack(anchor=N)
elif x == 'b':
la_th_1 = Label(fm_th_left, text="您现在将在迪迦奥特曼\n的指导进行相关操作~", font=('微软雅黑 15 bold'))
la_th_1.pack(anchor=N)
elif x == 'c':
la_th_1 = Label(fm_th_left, text="您现在将在赛文奥特曼\n的指导进行相关操作~", font=('微软雅黑 15 bold'))
la_th_1.pack(anchor=N)
elif x == 'd':
la_th_1 = Label(fm_th_left, text="您现在将在泰罗奥特曼\n的指导进行相关操作~", font=('微软雅黑 15 bold'))
la_th_1.pack(anchor=N)
#多个标签的添加(放fm_th_right上)
lname_arr_1 = ['奥特曼之王', '奥特之父', '奥特之母', 'M78星云的宇宙坐标', \
'奥特全能王', '第一部奥特曼上映时间', '奥特之星体积', '奥特之星重力', '最老的奥特曼', \
'最年轻的奥特曼', '奥特之父&母的孩子', '梦比优斯的师傅', '红十字的会长', \
'警备队的大队长', '奥特警备队的队长', '雷欧的徒弟']
lnum_1 = 0
for name_1 in lname_arr_1:
Label(fm_th_right, text=name_1, width=17).grid(row=0 + lnum_1, column=0) #同列不同行,所以设置一个“row=0 + lnum_1”
lnum_1 += 1 #每执行一次,就加一,也就处于下一行了。
#多个输入框的添加(放fm_th_right上)
e_th_1 = Entry(fm_th_right, width=8) #添加entry控件
e_th_1.insert(0, '哇塞') #设置默认值为“哇塞”
e_th_1.grid(row=0, column=1) #放置在第0行,第1列上。
e_th_2 = Entry(fm_th_right, width=8)
e_th_2.insert(0, '帅气')
e_th_2.grid(row=1, column=1)
e_th_3 = Entry(fm_th_right, width=8)
e_th_3.insert(0, '漂亮')
e_th_3.grid(row=2, column=1)
有话说:新人,发布文章是为了记录和学习。有相同需求的可以借鉴学习,有大佬希望指点一二。
Python tkinter +MATLAB 入门学习&实践操作 是一个系列,单个看也成立,一起看更好。