python图形界面_python图形界面开发 - CSDN
精华内容
参与话题
  • python 实现GUI(图形用户界面)编程

    万次阅读 多人点赞 2017-09-14 00:28:57
    Python支持多种图形界面的第三方库,包括: wxWidgets Qt GTK Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在...

    Python支持多种图形界面的第三方库,包括:

    • wxWidgets

    • Qt

    • GTK

      • Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

      • wxPython:wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能键全的 GUI 用户界面。

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

    Tkinter

    我们来梳理一下概念:

    我们编写的Python代码会调用内置的Tkinter,Tkinter封装了访问Tk的接口;

    Tk是一个图形库,支持多个操作系统,使用Tcl语言开发;

    Tk会调用操作系统提供的本地GUI接口,完成最终的GUI。

    所以,我们的代码只需要调用Tkinter提供的接口就可以了。

    在GUI中,每个Button、Label、输入框等,都是一个Widget。Frame则是可以容纳其他Widget的Widget,所有的Widget组合起来就是一棵树。

    pack()方法把Widget加入到父容器中,并实现布局。pack()是最简单的布局,grid()可以实现更复杂的布局。


    Tkinter

    创建一个GUI程序

    • 1、导入 Tkinter 模块
    • 2、创建控件
    • 3、指定这个控件的 master, 即这个控件属于哪一个
    • 4、告诉 GM(geometry manager) 有一个控件产生了。

    实例:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    import Tkinter
    top = Tkinter.Tk()
    # 进入消息循环
    top.mainloop()
    组件

    Tkinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为控件或者部件。

    目前有15种Tkinter的部件。我们提出这些部件以及一个简短的介绍,在下面的表:

    控件 描述
    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 用于显示你应用程序的消息框。

    标准属性

    标准属性也就是所有控件的共同属性,如大小,字体和颜色等等。

    属性 描述
    Dimension 控件大小;
    Color 控件颜色;
    Font 控件字体;
    Anchor 锚点;
    Relief 控件样式;
    Bitmap 位图;
    Cursor 光标;

    几何管理

    Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,一下是Tkinter公开的几何管理类:包、网格、位置

    几何方法 描述
    pack() 包装;
    grid() 网格;
    place() 位置;




    #!/usr/bin/env python
    
    import os
    from time import sleep
    from Tkinter import *
    
    class DirList(object):
        def __init__(self, initdir=None):
            self.top = Tk()
            self.label = Label(self.top,
                text='Directory Lister v1.2')
            self.label.pack()
    
            self.cwd=StringVar(self.top)
    
            self.dirl = Label(self.top, fg='blue',
                font=('Helvetica', 12, 'bold'))
            self.dirl.pack()
    
            self.dirfm = Frame(self.top)
            self.dirsb = Scrollbar(self.dirfm)
            self.dirsb.pack(side=RIGHT, fill=Y)
            self.dirs = Listbox(self.dirfm, height=15,
                width=50, yscrollcommand=self.dirsb.set)
            self.dirs.bind('<Double-1>', self.setdirandgo)
            self.dirsb.config(command=self.dirs.yview)
            self.dirs.pack(side=LEFT, fill=BOTH)
            self.dirfm.pack()
    
            self.dirn = Entry(self.top, width=50,
                textvariable=self.cwd)
            self.dirn.bind('<Return>', self.dols)
            self.dirn.pack()
    
            self.bfm = Frame(self.top)
            self.clr = Button(self.bfm, text='Clear',
                command=self.clrdir,
                activeforeground='white',
                activebackground='blue')
            self.ls = Button(self.bfm,
                text='List Directory',
                command=self.dols,
                activeforeground='white',
                activebackground='green')
            self.quit = Button(self.bfm, text='Quit',
                command=self.top.quit,
                activeforeground='white',
                activebackground='red')
            self.clr.pack(side=LEFT)
            self.ls.pack(side=LEFT)
            self.quit.pack(side=LEFT)
            self.bfm.pack()
    
            if initdir:
                self.cwd.set(os.curdir)
                self.dols()
    
        def clrdir(self, ev=None):
            self.cwd.set('')
    
        def setdirandgo(self, ev=None):
            self.last = self.cwd.get()
            self.dirs.config(selectbackground='red')
            check = self.dirs.get(self.dirs.curselection())
            if not check:
                check = os.curdir
            self.cwd.set(check)
            self.dols()
    
        def dols(self, ev=None):
            error = ''
            tdir = self.cwd.get()
            if not tdir:
                tdir = os.curdir
    
            if not os.path.exists(tdir):
                error = tdir + ': no such file'
            elif not os.path.isdir(tdir):
                error = tdir + ': not a directory'
    
            if error:
                self.cwd.set(error)
                self.top.update()
                sleep(2)
                if not (hasattr(self, 'last') \
                    and self.last):
                        self.last = os.curdir
                self.cwd.set(self.last)
                self.dirs.config(
                    selectbackground='LightSkyBlue')
                self.top.update()
                return
    
            self.cwd.set(
                'FETCHING DIRECTORY CONTENTS...')
            self.top.update()
            dirlist = os.listdir(tdir)
            dirlist.sort()
            os.chdir(tdir)
            self.dirl.config(text=os.getcwd())
            self.dirs.delete(0, END)
            self.dirs.insert(END, os.curdir)
            self.dirs.insert(END, os.pardir)
            for eachFile in dirlist:
                self.dirs.insert(END, eachFile)
            self.cwd.set(os.curdir)
            self.dirs.config(
                selectbackground='LightSkyBlue')
    
    def main():
        d = DirList(os.curdir)
        mainloop()
    
    if __name__ == '__main__':
        main()
    

    展开全文
  • python 实现图形界面exe

    万次阅读 2013-08-31 15:12:16
    需求:1)图形界面小工具 2)exe文件 3)对环境无依赖  之前大型的gui项目多用java实现,exe4j转成exe文件,缺点是运行此exe的人必须装有java虚拟机环境,或者吧jre达到exe会非常大,目前仅需要一个轻量级的小工具...

     需求:1)图形界面小工具 2)exe文件 3)对环境无依赖

      之前大型的gui项目多用java实现,exe4j转成exe文件,缺点是运行此exe的人必须装有java虚拟机环境,或者吧jre达到exe会非常大,目前仅需要一个轻量级的小工具所以选择技术如下。

     1、python作图-PYQT4 + Python2.7 + eric4-4.2.2a

      安装:1)安装python,目前我已经安装python就不赘诉

            2)安装PYQT4,下载地址(注意:2.7版本最好安装4.10版本)

            3)安装eric4,下载地址(注意选取与python版本对应的)

      在dos环境下执行>>python install.py >>cd eric >>python eric4.pyw 

      可能报错:cannot import name pyqtconfig是因为有些版本没有pyqtconfig这个文件,所以建议安装4.10版本

      启动后 点击Editor-Autocompation---勾上所有的对号选框。
             QScintilla---勾上左右的两个选框,
             然后在下面source中,选择from Document and API files. 
             点击Editor----APIs----勾上Complie APIs Autocompation,
             然后在Language中,选择python。
             点面下面的Add from installed APIs大按钮,选择住需要的.api文件。
             最后点击Compile APIs,几份钟后配置完成。

      新建项目:1)点击菜单中Project-New 新建项目 点击OK出现版本选择对话框,选择None

                2)点击左面的Project-Viewer中第二个选项卡Forms,右键New form,选择Fialog新建Test.ui文件,会自动弹出QT4设计窗口

                   

                  可能报错:project could not start Qt-Designer,把designer.exe的路径加到PATH环境变量里即可

                3)设计后可通过信号/槽编辑器添加事件,保存关闭。

                   

                4)返回值eric,右键鼠标选择Compile form,然后确定

            在project-Viewer下有个Ui_test.py即我们需要的python文件,运行就可生成图形界面

                   

           参考路径:http://my.oschina.net/zhangdapeng89/blog/81751

          2、使用PyInstaller生成可运行的exe文件

         1)从http://www.pyinstaller.org/下载安装

                

          2)下载upx, 官方地址:http://upx.sourceforge.net/ 在解压后的文件夹中找到文件upx.exe,将这个文件直接拷贝到PyInstaller的安装文件夹里。,比如c:\pyinstaller2

               

           执行命令如下:

           

            -F 表示只生成一个exe文件

            -icon 表示exe图标的位置


           哈哈,搞定,效果图及运行结果如下:

            

           即使在没有安装python环境的电脑上也能运行! 大小也能控制在10M左右

           参考路径:http://www.crifan.com/use_pyinstaller_to_package_python_to_single_executable_exe/

                          http://www.cnblogs.com/balian/archive/2012/11/21/2780503.html


    展开全文
  • python简单图形界面GUI入门——easygui

    万次阅读 多人点赞 2019-03-25 14:14:03
    感觉gui做起来成就感比较高,学完基础语言顺便花一个下午看看GUI...1)在python环境下,用pip3 install直接安装 2)现在配置的VS2015+Python环境,在VS中直接下载: 等待安装完成即可,简单调用messagebox进行...

    感觉gui做起来成就感比较高,学完基础语言顺便花一个下午看看GUI设计,现在回顾来看这个如果做正式的展示太过简单,easygui只是小演示之用。

     

     

    下载

    首先是easygui包下载,两种方式:

    1)在python环境下,用pip3 install直接安装

    2)现在配置的VS2015+Python环境,在VS中直接下载:

    等待安装完成即可,简单调用messagebox进行测试:

    导入成功。

     

    函数介绍

     

    1)msgbox()——消息弹窗

    msgbox(msg=' ', title=' ', ok_button=' ', image=None, root=None)

    该函数一般调用前三个关键字即可,加载图片的话给image赋值需要下载其他库,否则只能加载GIF。

     

    2)ccbox()——双项选择

    ccbox(msg=' ', title=' ', choices=('  ', '  '), image=None)

    多了一个选项为choices(只能容纳两个选项!)

    其返回值为布尔值Ture或者False.

     

    3)buttombox()——多项选择

    buttonbox(msg=' ', title=' ', choices=('Button1', 'Button2', 'Button3'), image=None, root=None)

    该函数和ccbox()不一样,其返回值为button的对应文本字符,

     

    4)choicebox()、multchoicebox()——可选的下拉列表

    choicebox(msg=' ', title=' ', choices=())  

    选项输入不再是单个元素,此处是以整个序列的方式输入,如列表、元组等;

    选择选项后确认,会返回选项内容的文本内容,否则是none

    multchoicebox()功能同样,只是他可以提供多选,多选的返回值是多选的文本列表

     

    5)enterbox()——文本输入框

    enterbox(msg='  ', title=' ', default=' ', strip=True, image=None, root=None)

    其中,default关键字定义的是文本框默认值,strip的值为True时会自动忽略输入的首尾空格,False则相反;

    返回值为输入的字符串;

     

    interbox()

    integerbox(msg='', title=' ', default='', lowerbound=0, upperbound=99, image=None, root=None, **invalidKeywordArguments)

    该文本框只能输入界定范围内的整型数,返回值为输入值。

     

    6)mulenterbox()

    multenterbox(msg=' ', title=' ', fields=(), values=())

    其中values是输入的默认值、feilds是需要填写的条目名称,均用列表填写;

    返回值是所有填写的值构成的列表;

     

    7)passwordbox()——密码输入框(不显示)

    passwordbox(msg=' ', title=' ', default=' ', image=None, root=None)

    基本关键字上面都介绍过了:提示语、标题、默认值等;

    与文本框也类似,只是显示时会是*,更接近密码输入;

    返回值依然是输入文本;

     

    multpasswordbox()

    更加实用的类型,与上面类似,不过其只有最后一个框是匿名的,即密码输入;

    其他都一样,返回值为列表形式;

     

     

    以上仅是实用easygui简单显示界面,了解之后发现其功能过于简单.....后面如果需要可视化展示还是用其他的方法,在此Mark一下:

    Tkinter、wxPython、Jython

    部分信息科参见:

    http://www.runoob.com/python/python-gui-tkinter.html

     

     

     

    展开全文
  • Python图形用户界面--GUI

    万次阅读 多人点赞 2018-07-02 22:30:55
    GUI是Graphical User Interface(图形用户界面)的缩写。在GUI中,并不只是键入文本和返回文本,用户可以看到窗口、按钮、文本框等图形,而且可以用鼠标点击,还可以通过键盘键入。我们目前为止的程序都是命令行或...

          GUI是Graphical User Interface(图形用户界面)的缩写。在GUI中,并不只是键入文本和返回文本,用户可以看到窗口、按钮、文本框等图形,而且可以用鼠标点击,还可以通过键盘键入。我们目前为止的程序都是命令行或文本模式程序。GUI是与程序交互的一种不同的方式。有GUI的程序仍然有3个基本要素:输入、处理和输出。

          我们一直都在使用GUI,实际上已经用过很多。web浏览器是GUI,IDLE也是GUI。现在我们自己来建立自己的GUI。

          EasyGUI是一个Python模块,利用这个模块可以很容易地建立简单的GUI。模块就是一种扩展方法,通过它可以向Python增加非内置的内容。

    安装EasyGUI

          可以下载easygui.py或者一个包含easygui.py的zip文件。只需把文件easygui.py挡在Python能找到的位置。

    Python路径

          Python会在硬盘上的一组位置中查找可以使用的模块。虽然这个工作可能有些复杂,所查找的这组位置各不相同,但是,如果把easygui.py放在Python安装的位置中,Python肯定能找到它。

    建立GUI

          启动IDLE,在交互模式中键入命令:import EasyGUI,如果没有得到错误的消息,说明Python找到了EasyGUI模块。

          下面进行一个例子进行说明,代码如下:


          运行结果:


          点击巧克力味,


          点击2,


          点击OK,


          下面是选择的另一种方法,EasyGUI提供了一种选择框(choice box,choicebox),它会显示一个选择列表,用户可以选择其中之一,然后点击OK。只需把上述代码中buttonbox改为choicebox。代码如下:


          运行程序:


          点击草莓味,点击OK按钮,


          点击3,点击OK按钮,


          点击OK,


          选在口味和尺寸大小时,除了用鼠标点击选择,还可以用键盘上的上下箭头键选择。

          如果点击cancel,程序会结束,同时还会看到一个错误,这是因为程序的最后一行希望得到某个文本(如vanilla),倘若点击cancel,将得不到任何输入。

          在easygui.py文件中以def_choicebox开头的一节,在这个位置向下大约30行,会看到类似下面的代码行:


          改变这些参数并保存,下一次运行程序时,选择窗口就会发生改变。

    文本输入:

          easygui提供了一种输入框(enter box,enterbox)能够做到这一点。程序如下:


          保存后,运行:


          输入‘’巧克力‘’点击OK:


          默认输入:


          运行结果跟上相同。






    展开全文
  • Python 图形界面(GUI)设计

    千次阅读 2018-11-05 20:02:31
    逛了一圈下来,总体上来说,Python 图形界面有以下几个可行度比较高的解决方案。   1. pyside 为什么要把它写第一个呢?因为已经接触过 Qt,所以,总体来讲,感觉它更亲一点。没错,它就是 pyQt 的 LGPL 版本...
  • 1.下载安装pythonPython官网下载地址  注意:1.1 Python版本选择并不是越新越好,后面会提到,我安装的版本是 V3.5.4 64位  1.2 安装的时候一定要勾选pip和add python to path(自动添加到环境变量)      .....
  • python 图形界面开发

    万次阅读 2017-07-27 10:27:45
    python来开发图形界面,确实不是很方便,没有c#,Java,甚至VB来得容易。几个控件拖拽,然后响应事件。用python写脚本,或者web service来处理一般工作,绰绰有余。
  • 教你用Python界面

    万次阅读 多人点赞 2018-11-18 18:58:06
    作为Pyhon开发者,你迟早都会碰到图形用户界面(GUI)应用开发任务,这时候我们就需要一些界面库来帮助我们快速搭建界面python界面库很多,我认识的并不多,这里只列出几种我认识的 1.tkinter Tkinter(也叫Tk...
  • python图形界面开发

    千次阅读 2019-06-10 22:03:41
    python图形界面开发 #python import tkinter import tkinter.messagebox def main(): flag = True def change_label_text(): nonlocal flag flag = not flag color, msg = ('red', 'hel...
  • Python 图形界面设计

    万次阅读 多人点赞 2019-05-31 11:25:00
    1、图形界面设计的基本理解 当前流行的计算机桌面应用程序大多数为图形化用户界面(Graphic User Interface,GUI),即通过鼠标对菜单、按钮等图形化元素触发指令,并从标签、对话框等图型化显示容器中获取人机对话...
  • Python 语言的诞生之日起,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI工具集,使得 Python 也可以在图形界面编程领域当中大展身手,由于 Python 的流行,许多应用程序都是由 Python 结合那些...
  • 图形界面库的优缺点: 1.Tkinter 简单介绍: 是绑定了 Python 的 Tk GUI 工具集 ,就是Python 包装的Tcl代码,通过内嵌在 Python 解释器内部的 Tcl 解释器实现, Tkinter的调用转换成 Tcl 命令,然后交给 Tcl ...
  • Python图形界面编程---Tkinter模块基础

    万次阅读 2020-01-10 10:01:45
    Python本身语法优美, 但一旦到了GUI就丑陋得不行. Python有很多GUI开发系统PyQt,PyGTK,wxPython,TkInter….等等 最近还有一种解决办法,使用html5搭建界面,加上一个web框架 结构形如:Python+HTML5+JS+Python ...
  • 作为Python开发者,你迟早都会用到图形用户界面来开发应用。本文将推荐一些 Python GUI 框架,希望对你有所帮助。 Python 的 UI 开发工具包 Kivy Ki...
  • Python图形界面设计

    千次阅读 2020-04-16 23:31:55
    1、按钮对话框,并显示输入对应的内容 from tkinter import * import tkinter.messagebox as messagebox class Application(Frame): def __init__(self, master=None): Frame.__init__(self, master) ...
  • 特别声明:本文中所有信息均来自于互联网,本文仅供在校大学生个人学习知识,不可用于其他用途。转载本文须声明来源,并引述本声明。
  • 特别声明:本文中所有信息均来自于互联网,本文仅供在校大学生个人学习知识,不可用于其他用途。转载本文须声明来源,并引述本声明。  具体的过程如下:
  • Python 是否有平台无关的图形界面工具包? 针对不同的(操作系统或)平台,有多种工具包可供选择。虽然有些工具包还没有移植到 Python 3 上,但至少目前 Tkinter 以及 Qt 是兼容 Python 3 的。 Tkinter Python 的...
  • PyQt5使用:Python图形界面PyQt5

    万次阅读 多人点赞 2018-08-02 09:07:49
        Python基本语法学完之后,第一个疑问来了,代码总是在一个黑框框DOS下运行,想要进行人机交互必须做出一个用户界面UI出来,然后查询试用了不同的GUI工具包,最后选择了较为熟悉的Qt工具包。 PyQt是一个创建...
  • 记录一下自己做的基于Python图形界面的网络聊天室这是我的第一个篇博客!**2. 说一下要写的代码****3. 功能介绍:**4.具体功能实现 这是我的第一个篇博客! 自学了3个多月python,之前学习了socket,会写简单的在...
1 2 3 4 5 ... 20
收藏数 71,984
精华内容 28,793
关键字:

python图形界面