python窗口界面设计(python 界面设计)
Python GUI项目实战(二)主窗体的界面设计与实现
上一节我们介绍了登录窗体的GUI设计与功能实现,用户的账号和密码校验完成后应当跳转到主窗体内容,这一节我们将具体介绍主窗体界面的设计与功能实现!
我们新建一个900x640的窗口,顶部加入图片,下面主体部分创建两个Panedwindow容器,左边添加按钮,右边作为TreeView显示界面;
显示效果:(注意:tkinter在Mac上Panedwindow不支持修改前景色背景色)
在右边的Pannedwindow容器中,添加一个LabelFrame容器作为查询区域,在LabelFrame容器中添加一系列的Label、Entry、Button控件,可以输入学号、姓名、电话、身份证、查询、和显示全部信息:
显示效果:
创建控件、设置对齐方式和每个列的标题
显示效果:
登录成功后,在顶部显示用户姓名和登录时间,用户姓名是怎么来的?是我们在登录窗口输入的,所以这就涉及到了跨窗体数据的传递。这一点非常重要!
登录窗体(登录信息)==主窗体
传递的基本方式:构造函数
在主窗体的构造函数中添加一个接收参数 current_user ,在登录窗体加载新窗体时将参数传递进去;
但是我们登录窗体的登录函数 login() 中用户名的变量 user 是局部变量,函数调用完了之后就变量就没有了,那怎么调用呢?
我们需要在登录窗体的构造函数中定义全局变量:
为了获取用户登录的时间,我们定义一个获取当前时间的方法:
然后在加载主窗体时将参数 self.user 和 self.get_now_time() 作为参数传递进去
另一边,我们在主窗体中,在构造函数中添加全局变量
之后,我们在Top_banner中通过标签将user信息展示出来:
这样主窗口就会显示通过登录窗口登录的用户名(首字母自动转大写)和登录时间:
效果演示:
然后我们在构造方法中把这个函数写入,以实现自动把学生信息写入到all_student_list中
文件中读取到的学生信息存储到all_student_list列表,以此作为参数传入加载TreeView的方法中;
在构造方法中调用该方法,自动把所有学生信息加载到TreeView中
运行效果:
这一节我们实现了主窗体的搭建,从界面的布局到TreeView加载全部学生信息。学生数据如此之多,如果我们想精确查看具体某个学生的信息该怎么做呢?下一讲,我们将实现学生信息的查询功能,敬请期待吧~
Python创建简单登录界面
创建一个简单的登录窗口,假设用户名为TestName,密码为Python。
依据之前提到的创建方式,grid布局设计UI,设计登录用户名和密码检查函数。
from tkinterimport *
def LoginCheck():
????????name = txtName.get()
????????password = txtPassword.get()
????????name_len =len(name)
????????password_len =len(password)
????????if name =="TestName" and password =="Python":
????????????msgLabel['text'] ='登录成功'
? ? ????elif? name =="TestName" and password !="Python":
????????????msgLabel['text'] ='密码错误'
? ? ? ? ????txtPassword.delete(0,password_len)
????????else:
????????????????msgLabel['text'] ='用户名错误'
? ? ? ????????? txtName.delete(0,name_len)
? ? ? ? ? ? ? txtPassword.delete(0, password_len)
wnd = Tk()
lblName = Label(wnd, text='User Name:')
lblName.grid(row=0, column=0, sticky=W)
txtName = Entry(wnd)
txtName.grid(row=0, column=1, sticky=E)
lblPs = Label(wnd, text='密码:')
lblPs.grid(row=1, column=0, sticky=W)
txtPassword = Entry(wnd)
txtPassword["show"] ='*'
txtPassword.grid(row=1, column=1, sticky=E)
btn = Button(wnd, text='登录', command=LoginCheck)
btn.grid(row=2, column=1, sticky=E)
# Message
msgLabel = Label(wnd, text='')
msgLabel.grid(row=3)
wnd.mainloop()
运行效果如下:
可输入不同的用户名和密码检测逻辑上设计是否正确。
用户名错误:
密码错误:
登录成功:
python 可视化界面怎么做
首先,如果没有安装python和PyQt软件的请先直接搜索下载并安装。python是一个开源软件,因此都是可以在网上免费下载的,最新版本即可。下载完成后,我们先打开PyQt designer。
2
打开后,首先是一个默认的新建窗口界面,在这里我们就选择默认的窗口即可。
3
现在是一个完全空白的窗口。第一步我们要先把所有的设计元素都拖进这个窗口。我们先拖入一个“Label”,就是一个不可编辑的标签。
随后我们再拖入一个可以编辑的“Line Edit”
最后我们拖入最后一个元素:“PushButton”按钮,也就是平时我们所点的确定。
目前我们已经把所有所需要的元素都拖入了新建的窗口。对于每一个元素,我们都可以双击进行属性值的修改,此时我们仅需要双击改个名字即可
此时我们已经完成了一半,接下来需要对动作信号进行操作。我们需要先切入编辑信号的模式
此时把鼠标移动到任意元素,都会发现其变成红色,代表其被选中。
当我们选中pushbutton后,继续拖动鼠标指向上面的line edit,会发现由pushbutton出现一个箭头指向了line edit,代表pushbutton的动作会对line edit进行操作。
随即会弹出一个配置连接窗口。左边的是pushbutton的操作,我们选择clicked(),即点击pushbutton。
右边是对line edit的操作,我们选择clear(),即清楚line edit中的内容。
最后我们点击确定。
保存完成后,我们在PyQt中的操作就已经完成了。保存的文件名我们命名为test,PyQt生成的设计文件后缀是.ui。
python除了用代码设计窗体还能用其他什么方式设计窗体?
答: 不知道你是否使用过PyQt,它可用于Python设计桌面窗口应用程序窗体。就是说你可以用PyQt的代码来设计窗体,当然你也可以使用跟它配套界面设计程序Qt designer。就比如说设计一个登陆界面,设计好之后呢,可以转换为Python代码,并将其导入,然后即可使用该界面。希望能够帮助到你。