python窗口界面设计(python 界面设计)

http://www.itjxue.com  2023-02-12 15:25  来源:未知  点击次数: 

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代码,并将其导入,然后即可使用该界面。希望能够帮助到你。

(责任编辑:IT教学网)

更多

推荐导航代码文章