当前位置: 首页 > wzjs >正文

中山模板建站公司手机网站智能建站

中山模板建站公司,手机网站智能建站,电子商务营销论文,案例学 网页设计与网站建设目录 一、相关的库 1、tkinter库 2、PyQt库 二、图形界面编程要点 三、tkinter控件 1、tkinter控件表 2、tkinter的常用控件 3、tkinter的扩展控件 四、tkinter布局 1、简单示例 2、默认情况下的grid规则 3、调整窗口和网格 (1)调整窗口 &…

目录

一、相关的库

1、tkinter库

2、PyQt库

二、图形界面编程要点

三、tkinter控件

1、tkinter控件表

2、tkinter的常用控件

3、tkinter的扩展控件

四、tkinter布局

1、简单示例

2、默认情况下的grid规则

3、调整窗口和网格

(1)调整窗口

(2)调整网格

4、grid()函数的sticky参数

五、Frame控件布局


当我们执行Python代码的时候,有时需要进行复杂的操作,比如进行一些输入操作,或者需要看下面的一些输出,这使得我们使用这些代码十分的困难,但是我们可以使用图形界面的程序和一些操作程序结合起来,使抽象的操作图形化,就像Windows一样,简单明了!

一、相关的库

1、tkinter库

这是Python自带的一个库,用法相对简单,但是界面比较简陋

2、PyQt库

是一个第三方库,做出的界面十分精美,但是代码相对复杂

二、图形界面编程要点

①控件

就是指按钮,列表框,单选框,多选框,编辑框

②布局

就是指如何把上面的那些控件摆放在合适的位置

③事件响应

对于鼠标的点击,键盘的敲击,控件被点击等操作进行响应

④对话框

弹出一个可以和用户交互的窗口,以及可以接受一些输入

三、tkinter控件

1、tkinter控件表

下面我们会用一个表格展示一些常用的控件

控件描述
Button按钮
Canvas画布,显示图像或线条文本
Checkbutton多选框(方形)
Entry单行编辑框(输入框)
Frame框架,上面可放多个控件
Label标签,可显示文本和图像
Listbox列表框
Menubutton带菜单的按钮
Menu菜单
Message消息,显示多行文本
OptionMenu带下拉菜单的按钮
Radiobutton单选框(圆形)
Scale滑块标尺,可以做一定范围内的数值选择
Scrollbar卷滚条,使内容在显示区域上下滚动
Text多行编辑框(输入框)
Toplevel顶层窗口,用于弹出自定义的对话框
Spinbox微调输入框,可输入数值,也可以通过上下箭头调整数值
PanedWindow滑动分割窗口,把一个窗口分割成好几块,交界处可以拖动,改变大小
LabelFrame带文字标签的框架,上面可以摆放多个控件

2、tkinter的常用控件

import tkinter as tkwin = tk.Tk()   #生成一个窗口
tk.Label(win)   #在窗口win上生成一个Label
ckb = tk.Checkbutton(win)   #在窗口上生成一个Checkbutton
frm = tk.Frame(win)     #在窗口上生成一个Frame
bt = tk.Button(frm)     #在frm上生成一个Button

3、tkinter的扩展控件

我们可以在tkinter中的ttk中找到扩展控件:

from tkinter import ttk

tk中有的控件ttk均有,而且更美观,用法也和tk相似,并且ttk包含一些扩展控件:

控件描述
Treeview树形列表
Progressbar进度条
Notebook多页标签
LabeledScale带文字的滑块标尺
PanedWindow分栏窗口

四、tkinter布局

1、简单示例

在tkinter中我们主要涉及到的布局是grid布局,它可以在窗口上布置网格,控件放在网格单元里面

下面我们制作一个简单的登录窗口,可以进行登录确认:

import tkinter as tkwin = tk.Tk()   #生成一个窗口
win.title("欢迎登录!")      #指定窗口标题
user_label = tk.Label(win , text = "用户名:")      #创建win上创建输入框的标签
password_label = tk.Label(win , text = "密码:")
et_username = tk.Entry(win)
et_password = tk.Entry(win)     #在win上创建两个输入框user_label.grid(row = 0 , column = 0 , padx = 5 , pady = 5)
password_label.grid(row = 1 , column = 0 , padx = 5 , pady = 5)
et_username.grid(row = 0 , column = 1 , padx = 5 , pady = 5)
et_password.grid(row = 1 , column = 1 , padx = 5 , pady = 5)
#给每一个控件标记放置的位置(0,0)就是第0行,第0列,以及上下左右都留白5个像素login = tk.Button(win , text = "登录")    #创建登录按钮
login.grid(row = 2 , column = 0 , columnspan = 2 , padx = 5 , pady = 5)     #同上win.mainloop()  #显示窗口

效果:

2、默认情况下的grid规则

注意是默认情况下的:

①一个单元格只能放一个控件,控件在单元格居中摆放

②不同控件的高度和宽度不一样,因此网格的不同的行和列可以不一样宽和高,但同一行和列的单元格都是一样的

③某一行或某一列的宽度和高度,取决于那一行或那一列中宽度或高度最宽或最高的那一个

④若不指定窗口的大小和显示,则窗口的大小和网格的大小一样,即恰好能包含所有的控件,显示位置则是由Python自己决定

3、调整窗口和网格

(1)调整窗口

我们可以通过下面这一行代码实现窗口打开时的大小:

win.geometry("800x500+200+100")     #设定窗口的大小是800x500像素的,然后窗口的左上角的坐标是200,100(就是设置窗口的相对位置

(2)调整网格

我们在把窗口放大的时候会发现里面的各个控件是不动的,这就会使得窗口有一大部分是空白的,很不美观:

我们可以添加一些东西:

import tkinter as tkwin = tk.Tk()   #生成一个窗口
win.title("欢迎登录!")      #指定窗口标题
user_label = tk.Label(win , text = "用户名:")      #创建win上创建输入框的标签
password_label = tk.Label(win , text = "密码:")
et_username = tk.Entry(win)
et_password = tk.Entry(win)     #在win上创建两个输入框user_label.grid(row = 0 , column = 0 , padx = 5 , pady = 5)
password_label.grid(row = 1 , column = 0 , padx = 5 , pady = 5)
et_username.grid(row = 0 , column = 1 , padx = 5 , pady = 5)
et_password.grid(row = 1 , column = 1 , padx = 5 , pady = 5)
#给每一个控件标记放置的位置(0,0)就是第0行,第0列,以及上下左右都留白5个像素login = tk.Button(win , text = "登录")    #创建登录按钮
login.grid(row = 2 , column = 0 , columnspan = 2 , padx = 5 , pady = 5)     #同上#---------------------------------------------
win.columnconfigure(0 , weight = 1)
win.columnconfigure(1 , weight = 1)
#针对列,0和1列,增量分配权重改为1
win.rowconfigure(0 , weight = 1)
win.rowconfigure(1 , weight = 1)
win.rowconfigure(2 , weight = 1)
#针对行,0和1和2行,增量分配权重改为1#---------------------------------------------win.mainloop()  #显示窗口

这样我们在放大窗口的时候就相对均匀美观了:

4、grid()函数的sticky参数

sticky参数用于指明控件在单元格中的“贴边方式”,即是否要贴着单元格的四条边,该参数可以是一个字符串,包含E,W,S,N,四个字符中的一个或多个,这四个字母就代表着东南西北,想让一个控件贴着哪个方向的边,就写哪个字符:

我们先看看没有sticky参数的时候:

假如我们现在想要它在右上角,我们可以增加一个参数:

或者我们也可以让他占满整个窗口:

(注:这几个大写字母没有顺序之分)

五、Frame控件布局

当我们在一个窗口上有很多控件,就需要计算每一个控件的行列等数据,十分的复杂麻烦,这时可以使用Frame控件

Frame控件上可以摆放其他控件,可当作底板使用,就相当于把win窗口上的各个控件划分成了若干个区域,便于管理

且Frame控件上也可以使用grid进行布局

下面我们来看一个简单的例子:

import tkinter as tkwin = tk.Tk()   #生成一个窗口
win.title("学生系统")      #指定窗口标题frame_zero = tk.Frame(win , bg = "blue" , highlightthickness = 2)
frame_zero.grid(row = 0 , column = 0 , padx = 6 , pady = 6 , sticky = "WENS")tk.Label(frame_zero , text = "nsjcndk").grid(row = 0 , column = 0 , padx = 6 , pady = 6)
#--------------------------------------------------------------------------------------
frame_one = tk.Frame(win , bg = "red" , highlightthickness = 2)
frame_one.grid(row = 0 , column = 1 , sticky = "WENS")tk.Label(frame_one , text = "姓名:").grid(row = 0 , column = 0 , padx = 6 , pady = 6)
tk.Entry(frame_one).grid(row = 0 , column = 1 , padx = 6 , pady = 6)
tk.Label(frame_one , text = "学号:").grid(row = 1 , column = 0 , padx = 6 , pady = 6)
tk.Entry(frame_one).grid(row = 1 , column = 1 , padx = 6 , pady = 6)
#--------------------------------------------------------------------------------------
frame_three = tk.Frame(win , bg = "green" , highlightthickness = 2)
frame_three.grid(row = 1 , column = 0 , padx = 6 , pady = 6 , sticky = "WENS")tk.Label(frame_three , text = "学生:").grid(row = 0 , column = 0 , padx = 6 , pady = 6 , sticky = "N")
name_list = tk.Listbox(frame_three)
name_list.grid(row = 1 , column = 0 , padx = 6 , pady = 6)
students = ["张三" , "李四" , "王五" , "赵六"]
for i in students :name_list.insert(tk.END , i)
#--------------------------------------------------------------------------------------
frame_four = tk.Frame(win , bg = "yellow" , highlightthickness = 2)
frame_four.grid(row = 1 , column = 1 , padx = 6 , pady = 6 , sticky = "WENS")tk.Text(frame_four).grid(row = 0 , column = 0 , columnspan = 2 , padx = 6 , pady = 6 ,sticky = "WENS")tk.Button(frame_four , text = "确定").grid(row = 1 , column = 0 , padx = 6 , pady = 6)
tk.Button(frame_four , text = "取消").grid(row = 1 , column = 1 , padx = 6 , pady = 6)win.mainloop()  #显示窗口

效果:

以上就是Python图形界面编程(一)的全部内容:)


文章转载自:

http://N206mWsY.mhmdx.cn
http://2tVhKFZK.mhmdx.cn
http://EOGjaJE8.mhmdx.cn
http://rsRsI6yH.mhmdx.cn
http://7wJpG3tt.mhmdx.cn
http://AFUpprAH.mhmdx.cn
http://Xs6cuMjx.mhmdx.cn
http://uJufWUIP.mhmdx.cn
http://AwYzjdqx.mhmdx.cn
http://YJ9Yj2pC.mhmdx.cn
http://YqvVnuYR.mhmdx.cn
http://C2smAvwI.mhmdx.cn
http://fts8dnto.mhmdx.cn
http://GJpEtY7m.mhmdx.cn
http://F4V4SmCZ.mhmdx.cn
http://6rwmSwVG.mhmdx.cn
http://Nah9cfPd.mhmdx.cn
http://Y6Uxt1MS.mhmdx.cn
http://4lFZmPzb.mhmdx.cn
http://USccHVgV.mhmdx.cn
http://POu5kWIJ.mhmdx.cn
http://oD1Qtijj.mhmdx.cn
http://Xkvn5nf8.mhmdx.cn
http://xhjTMnLr.mhmdx.cn
http://y8DvZx7A.mhmdx.cn
http://tJlRCvLt.mhmdx.cn
http://82ZABOn9.mhmdx.cn
http://l0GAJDbD.mhmdx.cn
http://FscT5j8e.mhmdx.cn
http://ioJ6ixQ4.mhmdx.cn
http://www.dtcms.com/wzjs/776286.html

相关文章:

  • 青岛网站建设系统wordpress重装教程视频
  • 苏州专业正规网站建设数据库和网站开发
  • 昆明 网站建设哪里有放网站的免费空间
  • 杭州萧山网站建设餐饮连锁网站建设
  • 个人网站备案需要多久北京中御建设公司网站
  • kali钓鱼网站制作网站设计的公司设计
  • 一学一做教育视频网站沈阳网站制作服务
  • 哈尔滨网络公司网站建设集团做网站
  • 黄浦网站推广公司品牌推广活动有哪些
  • 宣讲家网站做四讲四有模范学校网站在哪里找
  • 建瓯网站建设做零食网站的选题理由
  • 合肥网站建设方案服务关于干外贸的一些好的学习网站
  • 怎样做类似淘宝的网站wordpress特效-页面加载动画圆圈
  • 阿里云如何搭建网站国内网站设计作品欣赏
  • 成都网站制作公司电话电商网站开发公司哪家好
  • redis做网站网站建站 宝
  • 一个电商网站开发需要多久外贸在线网站建站
  • 广州本地做网站营销推广的方法
  • 返利网 网站开发深圳市宝安区
  • 做yy头像的网站微网站页面菜单栏
  • 打赏网站开发西安博网站建设
  • 百度网站的主要盈利来源不包括wordpress登陆地址
  • 帮人做网站 怎么收费企业黄页顺企网
  • seo百度网站排名软件石家庄网站建设多少钱
  • 宁波专业做网站的公司哪家好维护网站的职位叫什么
  • 游戏介绍网站模板下载地址漂亮的数据型网站
  • 学校门户网站网站建设项目外包
  • 建行网站会员注册用户名做全景图的网站
  • 网站优化主要怎么做wordpress 扩展字段
  • 广东省城乡建设厅网站湖州房产网