python gui开发工具什么好,python的gui库哪个好

python做界面,强烈推荐nicegui 在网上搜索 “python 做界面” ,得到的结果无非是TkinterwxWidgetsQtGtk。它们要不然就是打包后太大,要不就是界面丑,要不就是代码繁琐。这些都是 GUI,那么 web 界面又如何?我之前推荐过 streamlit,在简单的场景下,它仍然值得推荐。但是 streamlit 实在不灵活,受限于它的核心机制,有些需求几乎无法实现。用来做简单的数据看板,还行。streamlit 中加个边框线都很复杂,无语我需要一个灵活的web框架,可以做web服务的网站,也可以打包成独立的 exe。 阅读详情

本篇文章给大家谈谈python gui开发工具什么好,以及python的gui库哪个好,希望对各位有所帮助,不要忘了收藏本站喔。



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

Python内置图形界面库——Tkinter。

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

用法:

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

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

Button 按钮控件;在程序中显示按钮。

Frame 框架控件;在屏幕上显示一个矩形区域,多用来作为容器

Label 标签控件;可以显示文本和位图

Menubutton 菜单按钮控件,由于显示菜单项。

Menu 菜单控件;显示菜单栏,下拉菜单和弹出菜单

Message 消息控件;用来显示多行文本,与label比较类似

Scrollbar 滚动条控件,当内容超过可视化区域时使用,如列表框。.

Text 文本控件;用于显示多行文本

tkMessageBox 用于显示你应用程序的消息框。

Canvas 画布控件;显示图形元素如线条或文本

Checkbutton 多选框控件;用于在程序中提供多项选择框

Entry 输入控件;用于显示简单的文本内容

Listbox 列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户

Radiobutton 单选按钮控件;显示一个单选的按钮状态

Scale 范围控件;显示一个数值刻度,为输出限定范围的数字区间

Toplevel 容器控件;用来提供一个单独的对话框,和Frame比较类似

Spinbox 输入控件;与Entry类似,但是可以指定输入范围值

PanedWindow PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。

LabelFrame labelframe 是一个简单的容器控件。常用与复杂的窗口布局。

标准属性

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

Dimension:控件大小;

Color:控件颜色;

Font:控件字体;

Anchor:锚点;

Relief:控件样式;

Bitmap:位图;

Cursor:光标;

几何管理

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

pack():包装;

grid():网格;

place():位置;

由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。

注意:Python3.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

测试

importsysfrom PyQt5 importQtWidgets, 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。

制作窗体,另存该界面为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 importQtCore, QtGui, QtWidgetsclassUi_MainWindow(object):defsetupUi(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)defretranslateUi(self, MainWindow):

_translate=QtCore.QCoreApplication.translate

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

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

4、调用方式

importsysimportuntitledfrom PyQt5 importQtWidgetsif __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还有一流的处理本地化语言的独特功。

哪款PythonGUI库最适合你?深入对比Tkinter、PyQt、Kivy和WxPython Tkinter是Python的标准GUI库,也是最简单和最基本的选择。它内置于Python中,无需额外安装。Tkinter基于Tcl/Tk,是一款轻量级的GUI工具包,适用于创建简单的桌面应用。•:非常适合初学者。•:支持Windows、Mac和Linux。•:按钮、标签、文本框等基础组件齐全。PyQt是Python绑定的Qt库,它功能非常强大,适用于开发复杂的桌面应用。Qt库由C++编写,PyQt提供了Python接口,使得开发人员可以用Python编写功能丰富的GUI应用。•。 阅读详情

相关推荐

推荐8款常用的Python GUI图形界面开发框架

主要介绍了推荐8款常用的Python GUI图形界面开发框架,需要的朋友可以参考下

13个Python GUI库

Python Python是一门高级编程语言。它用于通用编程。Python语言由Guido van Rossum创建,并于1991年首次发布。Python的设计哲学着重于代码的可读性。因此空白在Python中具有重要的意义。 Python提供了允许在小规模和大规模上编程的设计理念,而且具有一个非常庞大的标准库。Python使用动态类型系统,并具有自动内存管理功能。 更多Python视...

python学习者的博客 6万+

【腹腔镜数据集】Cholec80+CholecSeg8k2020+Endoscapes2024

计算机辅助手术的发展旨在提高手术的正确性和安全性。然而,研究人员和工程师却面临着开发和训练更好算法所需的注释数据有限的问题。因此,同步定位与建图(SLAM)等基础算法的发展受到限制。基于Cholec80数据集,从Cholec80中的17个视频片段中提取了8,080个腹腔镜胆囊切除术图像帧,对图像进行注释并向公众发布。该数据集名为 CholecSeg8K。这些图像中的每一个都以十三个类别的像素级注释,这些类别通常在腹腔镜胆囊切除术中发现。

Toky_min的博客 2022

python gui库哪个好用

大家好,小编来为大家解答以下问题,python gui开发工具什么好,python的gui库哪个好,现在让我们一起来看看吧!GUI(图形用户界面),顾名思义就是用图形的方式,来显示计算机操作的界面,更加方便且直观。与之相对应的则是CUI(命令行用户交互),就是常见的Dos命令行操作,需要记忆一些常用的命令,对于普通人而言,操作起来学习难度还是蛮高的。一个好看又好用的GUI,可以大大提高大家的使用体验,提高效率。比如你想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没有用户体验的。

a159900的博客 1378

学习STM32的无人机控制

下面是一个基于STM32的无人机控制的简单示例代码,包括四旋翼的PID控制、遥控器信号解析和电机控制。本示例以STM32F103系列为例,使用Keil C编译器进行开发。

qq_67153941的博客 707

carsim与simulink联合仿真学习笔记(二)——使用C-class车模做driver model仿真(5 driver sensors)

Driver model 在carsim的Simulink库中自带外部驾驶员模型,打开后如图所示: 然后打开carsim中对应的数据集,如图所示: 具体仿真步骤不在赘述,注意到这里选择的是E-Class车模,那么如果我想选择C-Class车型进行仿真呢?点三角选择车型可以看到: 马赛克部分是我后来建的,如过没有使用过是没有马赛克部分的。那么既然这里没有C-class,又该怎么办呢? 创建C-...

xufuqiang2017的博客 4121

Python GUI 开发工具

编程开发迟早都会碰到图形用户界面(GUI)的开发任务,目前市场上有大量Python GUI开发框架可选择,包括 Pyjamas 这样的跨浏览器 web 开发框架。 推荐:PySide6、PyQt6、PyQt5、Gtk、Tk、wxpython

freeking101的博客 4万+

深入探究贝叶斯网络(Bayesian Network):从基础原理到实际应用

贝叶斯网络,也称为信念网络或有向无环图模型,是一种概率图模型。它使用有向无环图(DAG)来表示随机变量之间的条件依赖关系。每个节点代表一个随机变量,边表示变量之间的条件依赖关系。贝叶斯网络作为一种强大的工具,通过结合概率论和图论,为复杂系统建模和推理提供了有效手段。无论是在医学诊断、故障检测还是自然语言处理等领域,它都展示了巨大的潜力。然而,其计算复杂度高、结构学习困难等挑战也需要我们在实际应用中不断优化算法和技术。希望通过本文,你能对贝叶斯网络有更深入的理解,并能够在实际项目中灵活应用这一强大工具。

qq_28791753的博客 5974

python gui开发工具什么好,python有哪些好用的库

① Python所有方向的学习路线图,清楚各个方向要学什么东西② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论④ 20款主流手游迫解 爬虫手游逆行迫解教程包⑤ 爬虫与反爬虫攻防教程包,含15个大型网站迫解⑥ 爬虫APP逆向实战教程包,含45项绝密技术详解⑦ 超300本Python电子好书,从入门到高阶应有尽有⑧ 华为出品独家Python漫画教程,手机也能学习。

2301_79533350的博客 1179

Calibre 3Dstack Flow Example(5-2)

本文详细介绍了Calibre3DSTACK工具在3D-IC设计验证中的应用。主要内容包括:1)连通性检查(LVS)规则编写,重点说明connected命令的使用方法和多文本标签处理;2)设计规则检查(DRC)实现,涵盖层间距检查和焊盘重叠检查;3)系统网表生成器操作流程,从芯片导入到网连通性定义;4)两种规则文件语法(扩展语法和传统语法)的编写示例;5)验证报告文件格式解析。通过具体案例演示了如何建立完整的3D-IC验证流程,包括芯片定义、装配操作、电气连接验证和物理规则检查等关键步骤,为3D-IC设计验证

u013620135的博客 2337

把 ABAP ALE Change Pointers 讲透:从 CDHDR/CDPOS 到 BDCP2,再到 RBDMIDOC 的自动分发链路

摘要:SAP ALE Change Pointers机制在系统集成中实现业务变更与数据分发的解耦。它记录业务对象变更(如SAP主数据修改),但不立即发送,而是由后续分发逻辑决定发送时机和方式。该机制包含两层:Change Documents记录审计级变更明细,Change Pointers标记需分发的关键变更。配置核心包括全局开关、消息类型激活和字段选择。典型应用如零售价格条件变更自动推送至POS系统,通过BDCP2表存储待处理队列,由RBDMIDOC程序定时评估生成IDoc。运维需关注定期清理和性能优化,

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 211

python的gui库哪个好_python 8种必备的gui库

Python GUI 库有很多,下面给大家罗列常用的几种 GUI 库。下面介绍的这些GUI框架,能满足大部分开发人员的需要,你可以根据自己的需求,选择合适的GUI库。1. wxPythonwxPython 是一个跨平台的 GUI 工具集,是 Python 语言的一套优秀的 GUI 图形库,允许程序员创建完整的、功能键全的 GUI 用户界面。它以wxWidgets为基础,可以分别在Windows、M...

weixin_39624733的博客 1010

NVIDIA Isaac Sim 入门教程(二)

Omniverse Isaac Sim 的工作空间非常容易自定义。调整用户界面的大小、停靠、取消停靠、添加和移除面板都非常容易。进入顶部菜单栏,单击下拉菜单最下方的窗口 > 视口 > 视口 2(现在工作区中应该会出现一个名为 "视口 2 "的新视口。如果您想创建更多的视口,请按照相机检查器扩展进行操作。单击并拖动视口 2 的顶部标题以激活停靠部件。拖放到原始视口的右侧,将两个视口并排放置。单击并向左拖动视口 2 的左侧,使视口大小相等。

机器人控制与仿真应用 6547
上一篇: AI辅写疑似度多少不通过:揭秘学术界与写作界的隐藏标准!
下一篇: AI辅写疑似度多少不通过?七大指标助你判断!
普通网友
博客等级 码龄22年 1万+粉丝 3156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值