python实现gui界面,python的gui框架

  python实现gui界面,python的gui框架

  本文介绍了Python的四个GUI图形接口库,对大家的学习或工作都有一定的参考价值。下面让我们跟随边肖一起学习。

  00-1010一、Python官方标准库:Tkinter(必知)用法:II。三方库:PyQt5(推荐,但还是累)1。安装:二。QtDesigner3。配置PyCharm4。使用PyQt III。三方库:wxPython IV。三方图书馆:PyGTK

  

目录

  内置Python图形接口库——Tkinter。

  tk GUIntermodule(tkinterinterinterface)是Python的标准TKI工具包的接口。TKIntermodule和TKIntermodule可以在大多数Unix平台上使用,也可以应用于Windows和Macintosh系统。Tk8.0后续版本可以实现本地窗口风格,在大部分平台运行良好。

  

一、Python官方标准库:Tkinter (必须了解)

  Tkinter提供了各种控件,如按钮、标签和文本框,它们在GUI应用程序中使用。这些控件通常被称为控件或部件。

  目前Tkinter成分有15种。我们呈现这些组件和一个简短的介绍。

  按钮控制;在程序中显示按钮。框架控制;在屏幕上显示一个矩形区域,多用作容器标签控件;因为显示了菜单项,所以可以显示文本和位图菜单按钮菜单按钮控件。菜单控制;显示菜单栏、下拉菜单和弹出菜单的消息控件;用于显示多行文本,与标签相比类似于滚动条控件,当内容超出可视区域时使用,如列表框。文本文本控件;TkMessageBox用于显示多行文本,用于显示应用程序的消息框。Canvas画布控件;显示线条或文本等图形元素的Checkbutton多框控件;条目输入控件,用于在程序中提供多个选择框;Listbox用于显示简单文本内容的列表框控件;Listbox中的小部件是一个Radiobutton控件,用于向用户显示字符串列表。显示单选按钮状态刻度范围控件;显示数值刻度,这是一个数值区间,是具有有限输出范围的顶级容器控件。用于提供单独的对话框,与框架相比类似于Spinbox输入控件;类似于输入,但您可以指定输入范围值。PanedWindow PanedWindow是一个用于窗口布局管理的插件,可以包含一个或多个子控件。LabelFrame是一个简单的容器控件。常见和复杂的窗口布局。标准属性

  属性是所有控件的公共属性,如大小、字体和颜色。

  维度:控制大小;颜色:控制颜色;字体:控制字体;锚点:锚点;浮雕:控制风格;位图:位图;光标:光标;几何管理

  TKInters控制有特定的几何状态管理方法,管理整个控制区域组织。下面是TKInters曝光的几何管理类:包、网格、位置。

  Pack():打包;grid():grid;Place():位置;因为Tkinter内置在python的安装包里,只要安装Python就可以导入Tkinter库,IDLE也是用Tkinter写的,所以Tkinter还是可以应付简单的图形界面的。

  注意: Python 3 . x版制作

  用的库名为 tkinter,即首写字母 T 为小写。

  

  

import tkinter

  创建一个GUI程序

  

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

  实例

  

from tkinter import * # 导入 Tkinter 库

  root = Tk() # 创建窗口对象的背景色

  # 创建两个列表

  li = [C, python, php, html, SQL, java]

  movie = [CSS, jQuery, Bootstrap]

  listb = Listbox(root) # 创建两个列表组件

  listb2 = Listbox(root)

  for item in li: # 第一个小部件插入数据

   listb.insert(0, item)

  for item in movie: # 第二个小部件插入数据

   listb2.insert(0, item)

  listb.pack() # 将小部件放置到主窗口中

  listb2.pack()

  root.mainloop() # 进入消息循环

  以上代码执行结果如下图:

  

  

  

二、三方库:PyQt5(推荐,但是还是累)

  pyqt5是一套Python绑定Digia QT5应用的框架。它可用于Python 2和3。Qt库是最强大的GUI库之一。Qt强大之处在于网上有很多pyqt的资源,而且qt技术已经相当成熟,pyqt是采用基本和qt一致的api,因此之前使用过qt的人,转移到pyqt很容易.

  pyqt5做为Python的一个模块,它有620多个类和6000个函数和方法。这是一个跨平台的工具包,它可以运行在所有主要的操作系统,包括UNIX,Windows,Mac OS。pyqt5是双重许可。开发者可以在GPL和商业许可之间进行选择。

  常用模块

  

  • QtCore:包含了核心的非GUI功能。此模块用于处理时间、文件和目录、各种数据类型、流、URL、MIME类型、线程或进程。
  • QtGui:包含类窗口系统集成、事件处理、二维图形、基本成像、字体和文本。
  • Qtwidgets:包含创造经典桌面风格的用户界面提供了一套UI元素的类。
  • QtMultimedia:包含的类来处理多媒体内容和API来访问相机和收音机的功能。
  • Qtwebsockets:包含实现WebSocket协议类。
  • QtWebKit:包含一个基于Webkit2图书馆Web浏览器实现类。
  • Qtwebkitwidgets:包含的类的基础webkit1一用于qtwidgets应用Web浏览器的实现。
  • QtXml:包含与XML文件的类。这个模块为SAX和DOM API提供了实现。
  • QtSql:提供操作数据库的类。

  

  

1、安装:

  

pip install pyqt5

  

  测试

  

import sys

  from PyQt5 import QtWidgets, QtCore

  app = QtWidgets.QApplication(sys.argv)

  widget = QtWidgets.QWidget()

  widget.resize(400, 100)

  widget.setWindowTitle("This is a demo for PyQt Widget.")

  widget.show()

  exit(app.exec_())

  运行后弹出如下界面,表示PyQt已经正常工作啦。

  

  

  

2、QtDesigner

  QT给我们带来最方便的好处,就是它有一个QT Desiginer,这个设计器可以方便我们进行页面的布局,可以说在Tkinter里面需要一坨坨的代码完成的页面布局,在QT里面只要拖一拖控件就搞定了。

  Qtdesigner是Python设计里面一个非常实用的工具,使得人们编写qt界面可以不仅仅是使用纯代码,而可以在可视化的基础上设置,非常方便。

  用户安装PyQt5后,系统会默认安装QtDesigner工具。

  QtDesigner的默认默认路径: C:\python\python\Lib\site-packages\PyQt5\designer.exe

  安装PyQt5-tools

  Python环境需要安装designer。 在终端执行pip命令安装完PyQt5-tools。

  

pip install PyQt5-tools

  

  

  

3、配置PyCharm

  打开Pycharm,然后按照下面路径打开Extrernal Tools:

  File->设置->Tools->Extrernal Tools->点击+号->弹出对话框,配置如下:

  

  (1).增加QT设计界面Qt Designer —— 这个就是设计Qt界面的工具

  

  • Program选择PyQt安装目录中 designer.exe 的路径
  • Work directory 使用变量 $ProjectFileDir$ (点击后面的…)

  

  (2).增加PyUIC ——这个主要是用来将 Qt界面 转换成 py代码

  

  • Program选择PyQt安装目录中 pyuic5.bat 的路径
  • parameters设置为$FileName$ -o $FileNameWithoutExtension$.py
  • Work directory 设置为 $ProjectFileDir$ (点击后面的…)

  

  工具建立成功后返回ExternalTools界面,如下:

  

  可以在tools里面看到我们的工具

  

  

  

4、使用PyQt

  1、点击QtDesigner工具,弹出设计器窗口:

  

  如果打开Qt Designer 时,提示This application failed to start because no qt platform plugin could be:

  可以把 C:\Users\bobin.yang\PycharmProjects\untitled\venv\Lib\site-packages\pyqt5_tools\Qt\plugins\platforms目录的qwindows.dll拷贝到

  C:\Users\bobin.yang\PycharmProjects\untitled\venv\Lib\site-packages\pyqt5_tools\Qt\bin\platforms目录里, 或者直接覆盖原来的文件。

  注意:两个文件, 正确的文件大小 1.42M, 错误文件大小38k。

  2、制作窗体,另存该界面为Untitled.ui文件到项目文件夹下。

  

  3、返回PyCharm 项目界面,项目列表下多出了这个.ui文件

  

  把制作好的ui文件打开后,选择pyuic即可转换为*.py文件

  

  

# -*- coding: utf-8 -*-

  # Form implementation generated from reading ui file untitled.ui

  #

  # Created by: PyQt5 UI code generator 5.15.0

  #

  # WARNING: Any manual changes made to this file will be lost when pyuic5 is

  # run again. Do not edit this file unless you know what you are doing.

  from PyQt5 import QtCore, QtGui, QtWidgets

  class Ui_MainWindow(object):

   def setupUi(self, MainWindow):

   MainWindow.setObjectName("MainWindow")

   MainWindow.resize(800, 600)

   self.centralwidget = QtWidgets.QWidget(MainWindow)

   self.centralwidget.setObjectName("centralwidget")

   self.pushButton = QtWidgets.QPushButton(self.centralwidget)

   self.pushButton.setGeometry(QtCore.QRect(320, 310, 93, 28))

   self.pushButton.setObjectName("pushButton")

   MainWindow.setCentralWidget(self.centralwidget)

   self.menubar = QtWidgets.QMenuBar(MainWindow)

   self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 25))

   self.menubar.setObjectName("menubar")

   MainWindow.setMenuBar(self.menubar)

   self.statusbar = QtWidgets.QStatusBar(MainWindow)

   self.statusbar.setObjectName("statusbar")

   MainWindow.setStatusBar(self.statusbar)

   self.retranslateUi(MainWindow)

   QtCore.QMetaObject.connectSlotsByName(MainWindow)

   def retranslateUi(self, MainWindow):

   _translate = QtCore.QCoreApplication.translate

   MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

   self.pushButton.setText(_translate("MainWindow", "PushButton"))

  4、调用方式

  

import sys

  import untitled

  from PyQt5 import QtWidgets

  if __name__ == "__main__":

   app = QtWidgets.QApplication(sys.argv)

   widget = QtWidgets.QMainWindow()

   ui = untitled.Ui_MainWindow()

   ui.setupUi(widget)

   widget.show()

   sys.exit(app.exec_())

  执行结果

  

  

  

三、三方库:wxPython

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

  wxPython是免费的,源代码是开放的,允许其应用在商业产品上,你可以免费使用它和共享它。同时,它也提供类似QT Designer的设计器wxFormbuilder。可以说他就是个压缩版的QT,但是该有的功能却完全不缺失。

  

  

四、三方库:PyGTK

  PyGTK 让你用 Python 轻松创建具有图形用户界面的程序.底层的 GTK+提供了各 式的可视元素和功能,如果需要,你能开发在 GNOME 桌面系统运行的功能完整 的软件。PyGTK 真正具有跨平台性,它能不加修改地,稳定运行各种操作系统之 上,如 Linux,Windows,MacOS 等.除了简单易用和快速的原型开发能力外,PyGTK还有一流的处理本地化语言的独特功。

  到此这篇关于Python图形界面库的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: