python3_GUI编程

版权声明:本文为博主原创文章,未经博主允许不得转载,希望能在相互交流中共同成长。【大红色:一级标题 绿色:二级标题 二红色:三级标题 黄色:四级标题】 https://blog.csdn.net/admin_maxin/article/details/84982274

1.python提供了多个图形开发界面库

tkinter(import tkinter) : Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口

wxPython(import wx) : wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库

Jytyhon(import sys sys.path.append(a.jar)) : Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。Jython 几乎拥有标准的Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用Swing,AWT或者 SWT。Jython 可以被动态或静态地编译成 Java 字节码。

2.tkinter编程

创建GUI程序流程:

①导入tkinter模块

②创建控件

③指定控件的组件,并放置到主窗口中

④告诉界面管理器(geometry manager)有控件产生

# # coding: utf-8
# # author: admain_maxin
#
# import tkinter
#
# # __init__.py  -->  class Tk(Misc, Wm): def __init__(self, screenName=None,
# #                                                    baseName=None, className='Tk', useTk=1,
# #                                                    sync=0, use=None):
# # 创建控件:应用程序主窗口
# frame = tkinter.Tk()
#
# # 进入消息循环队列
# # def mainloop(self, n=0):
# # 调用窗口(Tk)的主循环
# frame.mainloop()
 
from tkinter import *
 
frame1 = Tk()
 
# 创建两个列表
li = ["c", "python", "php", "html", "SQL", "java"]
moive = ["css", "jQuery", "bootstrap"]
 
# class Listbox(Widget, XView, YView):
# def __init__(self, master=None, cnf={}, **kw):
# 可以显示字符串列表的Listbox小部件。
# 有效的资源名称:background,bd,bg,borderwidth,cursor,
# exportselection,fg,font,foreground,height,highlightbackground,
# highlightcolor,highlightthickness,relief,selectbackground,
# selectborderwidth,selectforeground,selectmode,setgrid,takefocus,
# width,xscrollcommand,yscrollcommand,listvariable。
listb = Listbox(frame1, font=("楷体", 15), highlightbackground="red")
listb2 = Listbox(frame1, font=("微软雅黑", 20), highlightbackground="black")
 
# 列表小部件插入数据
for item in li:
    listb.insert(0, item)
 
for item2 in moive:
    listb2.insert(0, item2)
 
listb.pack()
listb2.pack()
 
frame1.mainloop()
tkinter组件:
控件    描述
Button    按钮控件;在程序中显示按钮。bm=Button()
Canvas    画布控件;显示图形元素如线条或文本
Checkbutton    多选框控件;用于在程序中提供多项选择框
Entry    输入控件;用于显示简单的文本内容
Frame    框架控件;在屏幕上显示一个矩形区域,多用来作为容器
Label    标签控件;可以显示文本和位图
Listbox    列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户
Menubutton    菜单按钮控件,由于显示菜单项。
Menu    菜单控件;显示菜单栏,下拉菜单和弹出菜单
Message    消息控件;用来显示多行文本,与label比较类似
Radiobutton    单选按钮控件;显示一个单选的按钮状态
Scale    范围控件;显示一个数值刻度,为输出限定范围的数字区间
Scrollbar    滚动条控件,当内容超过可视化区域时使用,如列表框。.
Text    文本控件;用于显示多行文本
Toplevel    容器控件;用来提供一个单独的对话框,和Frame比较类似
Spinbox    输入控件;与Entry类似,但是可以指定输入范围值
PanedWindow    PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。
LabelFrame    labelframe 是一个简单的容器控件。常用与复杂的窗口布局。
tkMessageBox    用于显示你应用程序的消息框。
Button控件使用:

# coding: utf-8
# author: admain_maxin
from tkinter import *
 
root = Tk()
 
# def wm_title(self, string=None):...
# title = wm_title
root.title("button组件")
 
# def wm_geometry(self, newGeometry=None):...
# geometry = wm_geometry
root.geometry("300x150+400+200")
 
# class Button(Widget):... def __init__(self, master=None, cnf={}, **kw):
# STANDARD OPTIONS
#
#             activebackground, activeforeground, anchor,
#             background, bitmap, borderwidth, cursor,
#             disabledforeground, font, foreground
#             highlightbackground, highlightcolor,
#             highlightthickness, image, justify,
#             padx, pady, relief, repeatdelay,
#             repeatinterval, takefocus, text,
#             textvariable, underline, wraplength
#
#         WIDGET-SPECIFIC OPTIONS
#
#             command, compound, default, height(非像素高度),
#             overrelief, state, width(非像素高度)
bm1 = Button(text="button控件", borderwidth="2", font=("微软雅黑", 15), background="white")
# bm1.pack()
 
# def grid_configure(self, cnf={}, **kw):
# bm1.grid()
 
# def place_configure(self, cnf={}, **kw):
# x,y : 小部件在主控中的位置
# width,height : 小部件的像素宽和像素高
bm1.place(x=10, y=10, width=150, height=100)
 
root.mainloop()


控件标准属性:

属性    描述
Dimension    控件大小;
Color    控件颜色;
Font    控件字体;
Anchor    锚点;
Relief    控件样式;
Bitmap    位图;
Cursor    光标;
控件区域几何管理:(Tk().geometry() 或者是Tk().frame())
几何方法    描述
pack()    包装;在父窗口小部件中打包一个小部件
grid()    网格;当root中有控件采用包管理,则该方法需要借助几何框架frame
place()    位置;描述控件在窗口中的位置

--------------------- 
作者:admin_maxin 
来源:CSDN 
原文:https://blog.csdn.net/admin_maxin/article/details/80259957 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/admin_maxin/article/details/84982274