python可视化界面开发实例-python界面 | 实战Tkinter图形界面开发

0 写在前面未经允许,不得转载,谢谢~之前在这篇文章python 图形界面开发里记录了最开始学习python界面开发的有关知识,虽然整理了一些最常用的控件、属性,但还是缺少实践。下面这张就是我接下来想实现的整体界面的示意图(请忽略我粗糙的UI~~)界面基本功能介绍:点击按键next video会在下面的界面播放视频视频播放完成后在预测语句后的文本框中出现对该视频的语义描述点击按键标注语句可以在其后...
摘要由CSDN通过智能技术生成

0 写在前面

未经允许,不得转载,谢谢~

之前在这篇文章python 图形界面开发里记录了最开始学习python界面开发的有关知识,虽然整理了一些最常用的控件、属性,但还是缺少实践。

下面这张就是我接下来想实现的整体界面的示意图(请忽略我粗糙的UI~~)

311749e3b91a

界面

基本功能介绍:

点击按键next video会在下面的界面播放视频

视频播放完成后在预测语句后的文本框中出现对该视频的语义描述

点击按键标注语句可以在其后的文本框中展示对该视频的标注语句

这篇文章涉及的知识点还是挺多的哦:

Tkinter基本控件实现

TKinter控件属性优化

Tkinter实现视频播放

Threading模块实现多线程编程

真的可以自信满满地说点进来吧,不会让你失望的哈哈哈哈

1 具体实现

1.0 导入包、创建界面类

from Tkinter import *

class Application(Frame):

def __init__(self, master=None):

Frame.__init__(self, master)

self.pack()

if __name__=='__main__':

app = Application()

# to do

app.mainloop()

1.1 设置窗口标题、界面最大化

具体的函数如下所示,先获得当前屏幕的大小,然后设置窗口大小。

def window_init(self):

self.master.title('welcome to video-captioning system')

width,height=self.master.maxsize()

self.master.geometry("{}x{}".format(width, height))

在__init__初始化中调用即可。

1.2 实现各个控件布局

1) 布局方式介绍

布局就是控制各个控件在整个界面中的位置,Tkinter总共有3中布局管理器,分别是pack grid和place

总结一些最重要的东西吧:

pack可以算是最常用的一种布局方式。就是像容器中从上到下(或者从左到右...)依次添加组件。

grid很形象地又称为网格布局。把矩形界面分成一个几行几列的网格块,这样就可以把组件放置于网格中固定的位置.

place这是三中布局中最灵活的一种方式。根据组件在界面中的坐标来制定位置,所以会比较灵活,但也意味着不那么稳定。

所有的三种布局都可以使用容器中放容器的方法,这是非常使用的一个技巧。

2) 布局设计图

我选择全部用pack的方式来完成页面的布局工作。

具体的设计图如下所示:

311749e3b91a

页面布局图

我已经尽力去画了,不知道这样是不是清楚~

总共从上到下分成3个Frame: fm1   fm2   fm3

第一个Frame里面包含一个用来显示titile的Label

第三个Frame里面包含一个用来显示视频帧图像的Label

第二个Frame里面又分成左右两个小的容器:fm2_left   fm2_right

右边的fm2_right就包含一个用来播放视频的Buttton

左边的fm2_left又分为上下两个更小的容器:fm2_left_top   fm2_lef_bottom

fm2_left_top fm2_lef_bottom里面都各自包含一个按钮Button和一个用来显示文本的Entry

3) 布局实现代码

我们先不管具体的细节,直接把各个控件的布局位置给定下来,界面优化的部分放到后面去再添加。

按照上面的布局设计图,视频区域暂且用一张图片替代,用pack()实现基本布局如下:

def createWidgets(self):

# fm1

self.fm1=Frame(self)

self.titleLabel=Label(self.fm1,text='video-captioning system')

self.titleLabel.pack()

self.fm1.pack(side= TOP)

# fm2

self.fm2=Frame(self)

self.fm2_left=Frame(self.fm2)

self.fm2_right=Frame(self.fm2)

self.fm2_left_top=Frame(self.fm2_left)

self.fm2_left

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值