精华内容
下载资源
问答
  • 逛了一圈下来,总体上来说,python 图形界面有以下几个可行度比较高的解决方案。1. pyside为什么要把它写第一个呢?因为已经接触过 Qt,所以,总体来讲,感觉它更亲一点。没错,它就是 pyQt 的 LGPL 版本(Qt官方的...

    不要问我为什么要用 python 来做这种事,我回到“高兴咋地”也不是不可以,总之好奇有没有好的解决方案。逛了一圈下来,总体上来说,python 图形界面有以下几个可行度比较高的解决方案。

    1. pyside

    为什么要把它写第一个呢?因为已经接触过 Qt,所以,总体来讲,感觉它更亲一点。没错,它就是 pyQt 的 LGPL 版本(Qt官方的介绍是,Python for Qt)。

    这个框架最早是由 Nokia 的芒果团队做完的,但是,众所周知的原因,这个团队已经消失了。目前从找到的资料来看,Qt 重新接管了它的开发工作,而且处于活跃状态。但是也不见有人推广啊。。。据说,Matplotlib,PhotoGrabber,Wing IDE,Lucas Chess,Fminer都是用 pyside 来做的,貌似很好用的样子(别问我他们是干嘛的,我是 copy 来的)。

    Nokia 的团队开发的哟!是为了手机开发的哟!那自然天然的支持 Qt Mobile Interface 了。

    它的主页:http://qt-project.org/wiki/PySide/

    这两位兄台对 pyside 做了不错的介绍:

    1) http://blog.sina.com.cn/s/blog_62c832270101dca6.html

    2)http://www.cnblogs.com/goodhacker/p/3984377.html

    2. tkInter

    这是 python 做的 tk/tcl 的壳。tk/tcl 有着广泛的应用,据说用户群体很庞大。而且, tcl8 以后,用它做出来的 App 已经可以具备系统原生的效果了,不再是那种丑丑的界面。

    这个是 python 官方承认的标准 GUI 方案(官方说 “de-facto standard“,执行上的标准,我们还没承认?),资料也比较多,自行了解吧,这里只做备忘。

    总体感觉不大好,虽然说也支持多种平台,但是还是呵呵了。

    主页:https://wiki.python.org/moin/TkInter/

    3. wxPython

    wxWidget 的 python 版本。wxWidget 的知名度也就不必介绍了,似乎 wxPython 也比 tkinter 更受欢迎。wxPython 的官方站更是吊炸天的挂着一句“Why the hell hasn't wxPython become the standard GUI for Python yet?”。

    tkinter 都没兴趣了解, wxWidget 也就被呵呵了。不过做小三能做这么有名,也自然有过人之处,自然不能榜上无名。

    主页:http://www.wxpython.org

    十. 图形界面(GUI)设计1.图形界面设计基础

    早先程序使用最简单的输入输出方式,用户在键盘输入数据,程序将信息输出在屏幕上.现代程序要求使用图形用户界面(Graphical User Interface,GUI),界面中有菜单.按钮等,用户通过鼠 ...

    十. 图形界面(GUI)设计3.标签、按钮和按钮事件

    标签和按钮也许是图形界面中最常见的两种组件,按钮又总是与激发动作事件有关. 标签 标签(JLabel)是最简单的Swing组件.标签对象的作用是对位于其后的界面组件作说明.可以设置标签的属性,即前景色 ...

    十. 图形界面(GUI)设计2.框架窗口

    窗口是GUI编程的基础,小应用程序或图形界面的应用程序的可视组件都放在窗口中,在GUI中,窗口是用户屏幕的一部分,起着在屏幕中一个小屏幕的作用.有以下三种窗口: Applet窗口:Applet类管理这 ...

    十. 图形界面(GUI)设计6.文本框和文本区

    在图形界面中,文本框和文本区是用于信息输入输出的组件. 文本框 文本框(JTextField)是界面中用于输入和输出一行文本的框.JTextField类用来建立文本框.与文本框相关的接口是Action ...

    十. 图形界面(GUI)设计7.文本框和文本区的输入输出

    在GUI中,常用文本框和文本区实现数据的输入和输出.如果采用文本区输入,通常另设一个数据输入完成按钮.当数据输入结束时,点击这个按钮.事件处理程序利用getText()方法从文本区中读取字符串信息.对 ...

    十. 图形界面(GUI)设计5.布局设计

    在界面设计中,一个容器要放置许多组件,为了美观,为组件安排在容器中的位置,这就是布局设计.java.awt中定义了多种布局类,每种布局类对应一种布局的策略.常用的有以下布局类: FlowLayout, ...

    十. 图形界面(GUI)设计12.滚动条

    滚动条(JScrollBar)也称为滑块,用来表示一个相对值,该值代表指定范围内的一个整数.例如,用Word编辑文档时,编辑窗右边的滑块对应当前编辑位置在整个文档中的相对位置,可以通过移动选择新的编辑 ...

    十. 图形界面(GUI)设计11.对话框

    对话框是为了人机对话过程提供交互模式的工具.应用程序通过对话框,或给用户提供信息,或从用户获得信息.对话框是一个临时窗口,可以在其中放置用于得到用户输入的控件.在Swing中,有两个对话框类,它们是J ...

    十. 图形界面(GUI)设计10.菜单

    有两种类型的菜单:下拉式菜单和弹出式菜单.本章只讨论下拉式菜单编程方法.菜单与JComboBox和JCheckBox不同,它们在界面中是一直可见的.菜单与JComboBox的相同之处是每次只可选择一个 ...

    十. 图形界面(GUI)设计9.列表和组合框

    列表和组合框是又一类供用户选择的界面组件,用于在一组选择项目选择,组合框还可以输入新的选择. 列表 列表(JList)在界面中表现为列表框,是JList类或它的子类的对象.程序可以在列表框中加入多个文 ...

    随机推荐

    POJ C Looooops

    Description A Compiler Mystery: We are given a C-language style for loop of type for (variable = A; ...

    HDU 2082 找单词 --生成函数

    跟上题是一个思路:http://www.cnblogs.com/whatbeg/p/3728545.html 只不过是上一题的扩展. 代码: #include #in ...

    NIO组件Selector工作机制详解(下)

    转自:http://blog.csdn.net/haoel/article/details/2224069 五.  迷惑不解 : 为什么要自己消耗资源? 令人不解的是为什么我们的Java的New I/ ...

    C++对象模型5--多继承下的对象模型

    C++对象模型中加入多继承 从单继承可以知道,派生类中只是扩充了基类的虚函数表.如果是多继承的话,又是如何扩充的? 1)        每个基类都有自己的虚表. 2)        子类的成员函数被放 ...

    JAVA数据流再传递

    有一个filter类,在请求进入的时候读取了URL信息,并且读取了requestBod中的参数信息,那么在请求到达实际的控制层时,入参信息是拿不到的,对这种情况就需要数据流做再传递处理. 处理原理:使 ...

    Android 数据存储01之SharedPreferences

    Android 数据存储01之SharedPreferences 版本 修改内容 日期 修改人 V1.0 原始版本 2013/2/20 skywang 1 SharedPreferences概括 Sh ...

    fast协议解读

    目录 背景 fast协议特征 fast协议解读 背景 股票行情一般传输的数据类型为: int / long / float /double / string 来表示行情价格成交量之类的数据. 正常传输 ...

    《Algorithm算法》笔记:元素排序(2)——希尔排序

    笔记:元素排序(2)——希尔排序 Algorithm算法笔记元素排序2希尔排序 希尔排序思想 为什么是插入排序 h的确定方法 希尔排序的特点 代码 有关排序的介绍 ...

    mysql状态分析之show global status

    这里整理下mysql global status的相关命令,在计算监控数据的时候需要用到 一.慢查询 show variables like '%slow%'; +------------------ ...

    删除Android自带的系统软件注意事项

    教程类 知识分享 [转]好多童鞋在ROOT手机后,大刀阔斧的就开始砍系统里面的东西,有些事删不得的,删除错了就成砖头了! 以下是对照表: 注意:打*号的千万别删,打-号的是建议删的(大多要穿墙才能 ...

    展开全文
  • 简介作为 Python 开发者,图形用户界面(GUI)开发是必备技能之一。目前,市面上支持Python 的“GUI 工具包”很多,各有特点,虽然大多数工具包的基础类似,但要学习一个新包并掌握其细节还是非常耗时的,因此,在...

    简介

    作为 Python 开发者,图形用户界面(GUI)开发是必备技能之一。目前,市面上支持

    Python 的“GUI 工具包”很多,各有特点,虽然大多数工具包的基础类似,但要学习一个

    新包并掌握其细节还是非常耗时的,因此,在选用工具包时应仔细权衡。本文将介绍

    Python 自带的 GUI 工具包 TKinter。

    TKinter

    Python 的 GUI 库非常多,之所以选择 Tkinter,一是最为简单,二是自带库,不需下载

    安装,随时使用,跨平台兼容性非常好,三则是从需求出发的,Python 在实际应用中极

    少用于开发复杂的桌面应用,毕竟,Python 的各种 GUI 工具包都“一般得很”,不具备优

    势。

    关于 GUI,泛泛而谈难免枯燥,鉴于此,本文将基于一系列实例来介绍 Tkinter 控件。

    窗口创建与布局

    做界面,首先需要创建一个窗口,Python Tkinter 创建窗口很简单,代码如下:

    from tkinter import *

    #初始化Tk()

    myWindow = Tk()

    #进入消息循环

    myWindow.mainloop()

    上述程序创建的窗口是非常简陋的,有待进一步美化,设置标题、窗口大小、窗口是否

    可变等,涉及属性有:title(设置窗口标题)、 geometry(设置窗口大小)、

    resizable(设置窗口是否可以变化长 宽)。请看如下实例:

    copycode.gif

    from tkinter import Tk

    #初始化Tk()

    myWindow = Tk()

    #设置标题

    myWindow.title('Python GUI Learning')

    #设置窗口大小

    myWindow.geometry('380x300')

    #设置窗口是否可变长、宽,True:可变,False:不可变

    myWindow.resizable(width=False, height=True)

    #进入消息循环

    myWindow.mainloop()

    copycode.gif

    进一步,将窗口放置于屏幕中央,如下实例:

    copycode.gif

    from tkinter import Tk

    #初始化Tk()

    myWindow = Tk()

    #设置标题

    myWindow.title('Python GUI Learning')

    #设置窗口大小

    width = 380

    height = 300

    #获取屏幕尺寸以计算布局参数,使窗口居屏幕中央

    screenwidth = myWindow.winfo_screenwidth()

    screenheight = myWindow.winfo_screenheight()

    alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth-width)/2, (screenheight-height)/2)

    myWindow.geometry(alignstr)

    #设置窗口是否可变长、宽,True:可变,False:不可变

    myWindow.resizable(width=False, height=True)

    #进入消息循环

    myWindow.mainloop()

    copycode.gif

    常用控件

    仅有窗口并不能实现交互,还需要控件,Tkinter 提供了各种控件,如按钮、标签和文本

    框。在一个 GUI 应用程序中使用,这些控件通常被称为控件或者部件,目前有15种

    Tkinter 部件,如下列表:

    1421031-20181015163828976-1464354755.png

    几何管理

    Tkinter 控件有特定的几何状态管理方法,管理整个控件区域组织,以下是 Tkinter 公开

    的几何管理类:包、网格、位置。

    1421031-20181015163918318-1851152297.png

    Lable控件标签控件,基本用法为: Lable(root, option...) ,即:Label(根对象, [属性列表]),

    其中属性列表如下:

    1421031-20181015163950603-1557363500.png

    Lable 控件实例

    实例1:标签展示文本,代码如下:

    copycode.gif

    from tkinter import*

    #初始化Tk()

    myWindow = Tk()

    #设置标题

    myWindow.title('Python GUI Learning')

    #创建一个标签,显示文本

    Label(myWindow, text="user-name",bg='red',font=('Arial 12 bold'),width=20,height=5).pack()

    Label(myWindow, text="password",bg='green',width=20,height=5).pack()

    #进入消息循环

    myWindow.mainloop()

    copycode.gif

    执行结果:

    1421031-20181015164039950-2048398092.png

    实例2:标签展示图标,代码如下:

    copycode.gif

    from tkinter import*

    #初始化Tk()

    myWindow = Tk()

    #设置标题

    myWindow.title('Python GUI Learning')

    #创建一个标签,显示图标

    logo = PhotoImage(file="/Users/guojin/book/temp.gif")

    Label(myWindow, image=logo).pack(side='left')

    #进入消息循环

    myWindow.mainloop()

    copycode.gif

    运行结果:

    1421031-20181015164111629-1650617247.png

    实例3:标签图文混叠,边距控制,代码如下:

    copycode.gif

    from tkinter import*

    #初始化Tk()

    myWindow = Tk()

    #设置标题

    myWindow.title('Python GUI Learning')

    #创建一个标签,显示文本

    logo = PhotoImage(file="/Users/guojin/book/temp.gif")

    explanation = """At present, only GIF and PPM/PGM

    formats are supported, but an interface

    exists to allow additional image file

    formats to be added easily."""

    Label(myWindow,compound=CENTER,text=explanation,image=logo).pack(side="right")

    #进入消息循环

    myWindow.mainloop()

    copycode.gif

    运行结果:

    1421031-20181015165032697-52472823.png

    Button控件

    Button 控件是一个标准的 Tkinter 部件,用于实现各种按钮。按钮可以包含文本或图

    像,还可以关联 Python 函数。

    Tkinter 的按钮被按下时,会自动调用该函数。

    按钮文本可跨越一个以上的行。此外,文本字符可以有下划线,例如标记的键盘快捷

    键。默认情况下,使用 Tab 键可以移动到一个按钮部件,用法如下:

    Entry(根对象, [属性列表]),即Entry(root, option...)

    常用的属性列表如下:

    1421031-20181015165113874-2103277383.png

    Button 实例:

    实例1:创建按钮,代码如下:

    copycode.gif

    from tkinter import*

    #初始化Tk()

    myWindow = Tk()

    #设置标题

    myWindow.title('Python GUI Learning')

    #创建两个按钮

    b1=Button(myWindow, text='button1',bg="red", relief='raised', width=8, height=2)

    b1.grid(row=0, column=0, sticky=W, padx=5,pady=5)

    b2=Button(myWindow, text='button2', font=('Helvetica 10 bold'),width=8, height=2)

    b2.grid(row=0, column=1, sticky=W, padx=5, pady=5)

    #进入消息循环

    myWindow.mainloop()

    copycode.gif

    运行结果:

    1421031-20181015165301307-1977481359.png

    实例2:创建按钮并绑定响应函数,输入半径,计算圆面积并输出,代码如下:

    copycode.gif

    from tkinter import*

    def printInfo():

    #清理entry2

    entry2.delete(0, END)

    #根据输入半径计算面积

    R=int(entry1.get())

    S= 3.1415926*R*R

    entry2.insert(10, S)

    #清空entry2控件

    entry1.delete(0, END)

    #初始化Tk()

    myWindow = Tk()

    #设置标题

    myWindow.title('Python GUI Learning')

    #标签控件布局

    Label(myWindow, text="input").grid(row=0)

    Label(myWindow, text="output").grid(row=1)

    #Entry控件布局

    entry1=Entry(myWindow)

    entry2=Entry(myWindow)

    entry1.grid(row=0, column=1)

    entry2.grid(row=1, column=1)

    #Quit按钮退出;Run按钮打印计算结果

    Button(myWindow, text='Quit', command=myWindow.quit).grid(row=2, column=0,sticky=W, padx=5, pady=5)

    Button(myWindow, text='Run', command=printInfo).grid(row=2, column=1, sticky=W, padx=5, pady=5)

    #进入消息循环

    myWindow.mainloop()

    copycode.gif

    运行结果:

    1421031-20181015165456943-2087207397.png

    输入半径:

    1421031-20181015165516338-1184754718.png

    点击"Run’计算面积:

    1421031-20181015165548062-131369473.png

    Checkbutton控件Checkbutton 是复选框,又称为多选按钮,可以表示两种状态。用法为: Checkbutton

    ( root, option, ... ), 其中可选属性 option 有很多,如下表所示:

    1421031-20181015165630492-2037481845.png

    以下是这个小工具的常用方法:

    1421031-20181015165700982-1642211921.png

    实例1:创建一组复选框,代码如下:

    copycode.gif

    from tkinter import*

    #初始化Tk()

    myWindow = Tk()

    #设置标题

    myWindow.title('Python GUI Learning')

    # 用来获取复选框是否被勾选,通过chVarDis.get()来获取其的状态,其状态值为int类型 勾选为1

    chVarDis = IntVar()

    # text为该复选框后面显示的名称, variable将该复选框的状态赋值给一个变量,当state='disa

    check1 = Checkbutton(myWindow, text="Disabled", variable=chVarDis, state='disabled')

    # 该复选框是否勾选,select为勾选, deselect为不勾选

    check1.select()

    # sticky=tk.W 当该列中其他行或该行中的其他列的某一个功能拉长这列的宽度或高度时,

    # 设定该值可以保证本行保持左对齐,N:北/上对齐 S:南/下对齐 W:西/左对齐 E:东/右对齐

    check1.grid(column=0, row=0, sticky=W)

    chvarUn = IntVar()

    check2 = Checkbutton(myWindow, text="UnChecked", variable=chvarUn)

    check2.deselect()

    check2.grid(column=1, row=0, sticky=W)

    chvarEn = IntVar()

    check3 = Checkbutton(myWindow, text="Enabled", variable=chvarEn)

    check3.select()

    check3.grid(column=2, row=0, sticky=W)

    #进入消息循环

    myWindow.mainloop()

    copycode.gif

    实例2:绑定响应函数,代码如下:

    copycode.gif

    from tkinter import*

    def callCheckbutton():

    #改变v的值,即改变Checkbutton的显示值

    v.set('check CheckButton')

    #初始化Tk()

    myWindow = Tk()

    #设置标题

    myWindow.title('Python GUI Learning')

    v = StringVar()

    v.set('check python')

    #绑定v到Checkbutton的属性textvariable

    Checkbutton(myWindow,textvariable = v,command = callCheckbutton).pack()

    #进入消息循环

    myWindow.mainloop()

    copycode.gif

    Radiobutton控件

    单选按钮是一种可在多个预先定义的选项中选择出一项的 Tkinter 控件 。单选按钮可显

    示文字或图片,显示文字时只能使用预设字体,该控件可以绑定一个 Python 函数或方

    法,当单选按钮被选择时,该函数或方法将被调用。

    单选按钮(Radio Button)这个名字来源于收音机(Radio)上的调频按钮, 这些按钮用

    来选择特定波段或预设电台,如果一个按钮被按下, 其他同类的按钮就会弹起,即同时

    只有一个按钮可被按下。

    一组单选按钮控件和同一个变量关联。点击其中一个单选按钮将把这个变量设为某个预

    定义的值。一般用法为: Radiobutton(myWindow,options) ,其中 option 与

    Checkbutton,Button 大多重合,用法一致。

    1421031-20181015170004345-944702579.png

    实例:创建单选按钮并绑定响应函数,代码如下:

    copycode.gif

    from tkinter import*

    #初始化Tk()

    myWindow=Tk()

    myWindow.title('Python GUI Learning')

    v=IntVar()

    #列表中存储的是元素是元组

    language=[('python',0),('C++',1),('C',2),('Java',3)]

    #定义单选按钮的响应函数

    def callRB():

    for i in range(4):

    if (v.get()==i):

    root1 = Tk()

    Label(root1,text='你的选择是'+language[i][0]+'!',fg='red',width=20, height=6).pack()

    Button(root1,text='确定',width=3,height=1,command=root1.destroy).pack(side='bottom')

    Label(myWindow,text='选择一门你喜欢的编程语言').pack(anchor=W)

    #for循环创建单选框

    for lan,num in language:

    Radiobutton(myWindow, text=lan, value=num, command=callRB, variable=v).pack(anchor=W)

    #进入消息循环

    myWindow.mainloop()

    copycode.gif

    运行结果:

    1421031-20181015170540585-873407939.png

    1421031-20181015170557193-1659456318.png

    Menu控件

    Menu被用来创建一个菜单,创建Menu类的实例,然后使用add方法添加命令或者其他

    菜单内容。使用方法如下:

    Menu(root,option,…)

    其中 option 列表如下:

    1421031-20181015170627884-998575912.png

    特有函数如下:

    1421031-20181015170650410-2092007143.png

    实例:创建一个菜单组,代码如下:

    copycode.gif

    from tkinter import *

    #创建窗口

    myWindow=Tk()

    myWindow.title("菜单")

    myWindow.geometry("400x300+300+100")

    # 创建一个菜单项,类似于导航栏,顶层菜单

    menubar=Menu(myWindow)

    # 创建菜单项

    fmenu1=Menu(myWindow)

    for item in ['新建','打开','保存','另存为']:

    # 如果该菜单是顶层菜单的一个菜单项,则它添加的是下拉菜单的菜单项。则他添加的是下拉菜单的菜单项。

    fmenu1.add_command(label=item)

    fmenu2=Menu(myWindow)

    for item in ['复制','粘贴','剪切']:

    fmenu2.add_command(label=item)

    fmenu3=Menu(myWindow)

    for item in ['大纲视图','web视图']:

    fmenu3.add_command(label=item)

    fmenu4=Menu(myWindow)

    for item in ["版权信息","其它说明"]:

    fmenu4.add_command(label=item)

    # add_cascade 的一个很重要的属性就是 menu 属性,它指明了要把那个菜单级联到该菜单项上,

    # 当然,还必不可少的就是 label 属性,用于指定该菜单项的名称

    menubar.add_cascade(label="文件",menu=fmenu1)

    menubar.add_cascade(label="编辑",menu=fmenu2)

    menubar.add_cascade(label="视图",menu=fmenu3)

    menubar.add_cascade(label="关于",menu=fmenu4)

    # 最后可以用窗口的 menu 属性指定我们使用哪一个作为它的顶层菜单

    myWindow.config(menu=menubar)

    #进入消息循环

    myWindow.mainloop()

    copycode.gif

    运行结果:

    1421031-20181015170945029-877251031.png

    1421031-20181015170954646-1512359629.png

    Message控件

    Message 控件用来展示一些文字短消息。Message 和 Label 控件有些类似, 但在展示文

    字方面比 Label 要灵活,比如 Message 控件可以改变字体,而 Label 控件只能使用一种

    字体,它提供了一个换行对象,以使文字可以断为多行。

    它可以支持文字的自动换行及对齐,这里要澄清一下前面提到的 Message 控件可以改变

    字体的说法: 这是说我们可以为单个控件设置任意字体, 控件内的文字都将显示为该字

    体,但我们不能给单个控件内的文字设置多种字体,如果你需要这么做,可以考虑使用

    Text 控件。

    创建一个 Message 控件的语法如下:

    w = Message ( root, option, ... )

    其中 option 列表如下:

    1421031-20181015171029480-929918395.png

    请看下面实例:

    copycode.gif

    from tkinter import *

    #初始化Tk()

    myWindow=Tk()

    #创建一个Message

    whatever_you_do = "Only those who have the patience to do simple things per

    msg = Message(myWindow, text = whatever_you_do)

    msg.config(bg='lightgreen', font=('times', 20, 'italic'))

    msg.pack( )

    #进入消息循环

    myWindow.mainloop()

    展开全文
  • python界面设计工具-wxFormBuilder

    千次阅读 2019-10-24 14:02:52
    wxFormBuilder是一款可视化的GUI设计工具,界面设计后可以自动生成代码,免去了手工码gui的繁琐,一套界面可支持生成C++\Python\PHP\Lua\XRC等代码形式,可以极大提升python GUI开发效能。 项目发布网址: ...

    一 wxFormBuilder是什么

    wxFormBuilder是一款可视化的GUI设计工具,界面设计后可以自动生成代码,免去了手工码gui的繁琐,一套界面可支持生成C++\Python\PHP\Lua\XRC等代码形式,可以极大提升python GUI开发效能。

    项目发布网址:

    https://github.com/wxFormBuilder/wxFormBuilder/releases

    二 wxFormBuilder工具界面

    工具界面主要分为四大区:项目区、控件区、编辑区、属性区。虽然工具没有提供详细的使用文档,但如果有C#桌面应用开发经验,会发现它与vs studio有几分神似,可以很快上手。界面设计的基本操作步骤为:在【控件区】选择控件,控件会在【编辑区】实时显示,然后在【属性区】编辑控件属性,整个界面布局会以树形层级结构显示在【项目区】,且项目区的控件支持拖动改变位置。

    三 界面布局

    一个GUI的基础框架包括:Frame,Sizer,menubar,statusBar,且控件之间存在层次关系。

    Frame:

    整个界面的基础框架,直接决定GUI界面大小,其他控件都是在frame基础上才能添加(对应控件区的Forms);

    Sizer:

    决定了各控件的布局和相对位置,所有的基础控件都应该放在sizer里,且sizer支持嵌套,这也是与vs界面设计器不同的地方,不能支持控件的自由拖动,略显不够灵活,但通过sizer嵌套也可以实现复杂的界面设计(对应控件区的Layout);

    控件:

    有了上面两层后,就可以真正的添加控件了,提供了支持wxpython的丰富控件,对应控件区的Common、Containers、Menu/Toolbar等;

    3.1 sizer布局器

    Sizer布局类型有7种:wxBoxSizer、wxWrapSizer、wxStaticBoxSizer、wxGridSizer、wxFlexGridSizer、wxGridBagSizer、wxStdDialogButtonSizer,sizer决定了添加在内部的各个控件的相对位置,如图wxBoxSizer是上下排列的布局器,则frame添加了一个wxBoxSizer,然后在该sizer内添加三个按钮,那么,这三个按钮就自动按自上而下进行排列。

    3.2 控件属性

    每个控件都可以单独设置属性,也会有自己的独特属性,在此总结了5个影响控件表现的重要属性: style,flag,size ,proportion,orient。

    Style: 控件样式,不同的控件有不同的style属性值,勾选后可以实时表现在设计器上;

    Flag: 可以设置控件边框、对齐(align)、扩展(expand)等表现;

    Size: 设置控件大小;

    Proportion:是否自动拉伸(stretch),默认0;

    Orient: 控件对齐方式,wxVertical(垂直对齐),wxHorizontal(水平对齐);

    3.3 响应事件

    有些控件是需要触发事件响应的,比如按钮控件(Button),当点击Button,需要触发某个任务时,就需要为该控件绑定事件。界面设计时,只需要在【属性区】的【Events】页面配置事件对应的函数名,如按钮点击事件是OnButtonClick,具体功能实现放在业务模块重写该事件函数即可。

    3.4 生成代码

    界面设计完成后,选择File->Generate Code或F8即可生成代码,或者直接切换到对应的代码标签页复制代码,另存到py文件。

    四 使用自动生成的界面代码

    引用界面设计器生成的布局代码的基本方法如下:

    
     
    1. import wx

    2. # 导入布局器生成的界面代码,如类名为BaseFrame,模块名为base_frame

    3. from base_frame import BaseFrame

    4.  

    5. class mainWin(BaseFrame):

    6. "继承BaseFrame界面布局"

    7.  

    8. def __init__(self, parent):

    9. BaseFrame.__init__(self, parent)

    10. # 初始化数据

    11. pass

    12.  

    13. def handle_event(self, event):

    14. # 重写事件处理函数

    15. pass

    16.  

    17.  

    18. if __name__ == '__main__':

    19. app = wx.App()

    20.  

    21. main_win = mainWin(None)

    22. main_win.Show()

    23.  

    24. app.MainLoop()

    转载网址:

    https://mp.weixin.qq.com/s?__biz=MjM5MTkxMTQ4Nw==&mid=2449052654&idx=1&sn=c428f6db3582620ac2bef2b14f0f5247&chksm=b2a368be85d4e1a803c2ad8cf8f88630f8c5143893416ca466456d34beba1efacb628b0b5d71&token=1621876628&lang=zh_CN#rd

     


    看完本文有收获?请转发分享给更多人

    关注 【小蟒社区】,一起学Python

    展开全文
  • Python界面设计之Button

    千次阅读 2015-12-28 21:07:17
    from tkinter import * #定义Button的回调函数 def helloButton():  print('hello button') root=Tk() #用command指定回调函数 ...Button(root,text='hello Button',command=helloButton).pack() ...

    from tkinter import *

    #定义Button的回调函数
    def helloButton():
        print('hello button')
    root=Tk()

    #用command指定回调函数
    Button(root,text='hello Button',command=helloButton).pack()
    root.mainloop()

    展开全文
  • Python界面设计之Label

    千次阅读 2015-12-27 15:12:39
    (1)例如: from tkinter import * root = Tk() root.title('hello tkinter') root.mainloop() (2)例如: from tkinter import * root = Tk() label=Label(root,text='hell world') ...root.main
  • python界面设计------wx

    千次阅读 2019-01-28 22:00:07
    python界面设计的库有很多今天用wx写一个简单的小程序 界面大致如下图所示 #图像用户界面 import wx app = wx.App() win = wx.Frame(None,title="byc",size=(800,800))#在不考虑父类部件的请况下用...
  • 打开QTcreator,新建一个UI界面设计之,右下角可以添加id 在cmd中运行以下代码: pyside2-uic UIname.ui > ui_Uiname.py 若这一步遇见了中文乱码问题,不要慌,试一试如下代码: pyside2-uic -...
  • Python 界面设计时的的Frame与Grid

    千次阅读 2019-03-09 11:06:08
    一、Frame 这两天才用到frame,说实话,frame是非常好用的,使用时要注意的是要把你的frame看成一个独立的窗口。 一、grid 在布局里面,你用grid 会出现不一样的长度的Label 的text会在grid 的状态下呈现的特别难看,...
  • 已经安装了python3.5, pyqt5,可惜没有qt designer,不能进行图形化界面设计。 需要先安装qt5和qt工具: sudo apt-get install qt5-default qttools5-dev-tools 然后在终端执行designer就可以打开qt designer...
  • 文本填入你想要显示在界面上的名字 对象名称处填入你代码中对对象的命名 图标处的...下拉选中从文件中读取,选中你想要的icon 这样就完成了一个ACTION的创建 将创建完毕的action拖入工具栏之后就可以显示了,此外在...
  • python写爬虫,老师叫我加界面设计,怎么弄写界面的话可以有两种方式,一种是GUI方式,可以使用tk或者QT之类的还有一种就是使用WEB方式,做一个HTML的界面,可以使用简单的flask来做python怎么使用qtdesigner设计...
  • python界面颜色-python界面颜色

    千次阅读 2020-11-01 13:18:42
    当你需要添加一个注释时,你应该考虑如何修改代码才能不需要注释 作为pyhon开发者,你迟早都会碰到图形用户界面(gui)应用开发任务,这时候我们就需要一些界面库来帮助我们快速搭建界面python界面库很多,我...
  • Python-Tkinter图形化界面设计(详细教程 )

    万次阅读 多人点赞 2019-08-05 23:07:41
    Python 图形化界面设计 文章参考:https://www.jianshu.com/p/91844c5bca78 1、图形化界面设计的基本理解 当前流行的计算机桌面应用程序大多数为图形化用户界面(Graphic User Interface,GUI),即通过鼠标对菜单...
  • Python 图形化界面设计

    万次阅读 多人点赞 2019-05-30 21:40:24
    1、图形化界面设计的基本理解 当前流行的计算机桌面应用程序大多数为图形化用户界面(Graphic User Interface,GUI),即通过鼠标对菜单、按钮等图形化元素触发指令,并从标签、对话框等图型化显示容器中获取人机对话...
  • 按道理来说python不应该拿来设计界面,本来他也不是这个擅长的,完全可以用WPF等使用python封装代码,但是也是实际用到了,就想一整套下来全用python。... 界面设计器和布局 py生成器 界面原理 1pyqt库下载和安装 ...
  • Python图形界面设计

    万次阅读 多人点赞 2019-09-07 20:21:30
    1、按钮对话框,并显示输入对应的内容 from tkinter import * import tkinter.messagebox as messagebox class Application(Frame): def __init__(self, master=None): Frame.__init__(self, master) ...
  • Python 图形界面设计

    千次阅读 2018-04-02 11:49:26
    没错,它就是 pyQt 的 LGPL 版本(Qt官方的介绍是,Python for Qt)。这个框架最早是由 Nokia 的芒果团队做完的,但是,众所周知的原因,这个团队已经消失了。目前从找到的资料来看,Qt 重新接管了它的开发工作,...
  • 前不久上传了一个控制台版本的学生管理系统,这个是Python界面版学生管理系统,这个是使用pycharm开发的一个有界面的学生管理系统,基本的增删改查,里面又演示视频和完整代码,有需要的伙伴可以自行下载
  • Python语言设计GUI界面

    千次阅读 2019-08-14 09:48:20
    Python语言设计GUI界面 我们大家都编写过程序,但是如果能够设计一个GUI界面,会使程序增添一个很大的亮点!今天就让我们来用目前十分流行的python语言写出一个最基本的GUI,为日后设计更加漂亮的GUI打下基础。...
  • python中有很多的GUI库,我选择的是比较成熟的wxpython.这个基本上可以满足我们的需要了,操作起来也比较简单。下面通过一些简单的例子逐步的来学习wxpython。 1.建立一个最简单的GUI窗口: 3 import wx 2 app=wx...
  • Python图形界面设计(Tkinter库)

    千次阅读 多人点赞 2019-08-20 15:45:33
      Tkinter 模块( Tk 接口)是 Python 的标准 Tk GUI 工具包的接口。Tkinter可以在大多数 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk 8.0 的后续版本可以实现本地窗口风格,并良好地运行在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 109,057
精华内容 43,622
关键字:

python界面设计

python 订阅