me的保存路径怎么查看,ME软件使用

首页 > 经验 > 作者:YD1662022-11-07 10:50:33

作者 | 许向武

出品 | CSDN博客

me的保存路径怎么查看,ME软件使用(1)

概述

MFC是我接触到的第一个界面库,当时的操作系统还是Windows95。在那个IT技术日新月异的年代,就像一个从荒蛮部落闯进文明社会的野人第一眼看见汽车那样,我对MFC充满了好奇和迷恋。尽管后来断断续续接触了WPF、Qt等GUI库,却始终对MFC情有独钟,以至于爱屋及乌,喜欢上了wxWidgets。

wxWidgets和MFC的确太相似了,连命名习惯和架构都高度相似。事实上,wxWidgets就是跨平台的MFC,对各个平台的差异做了抽象,后端还是用各平台原生的API实现。这正是wxWidgets的优点:编译出来的程序发行包比较小,性能也相当优异。

随着MFC的日渐式微,Qt异军突起,目前已成为最强大,最受欢迎的跨平台GUI库之一。在python生态圈里,PyQt的用户群也远超wxPython。喜欢Qt的人认为这是技术竞争的结果,但我觉得这更像是开源理念和商业化思想的差异造成的。

wxWidgets像是一个孤独的勇士,高举开源的大旗,试图以一己之力构建一个相互承认、相互尊重的理想社会;而Qt则更像是一个在商业资本驱使下不断扩张的帝国,它不满足于封装不同平台的API,而是要创造出自己的API和框架,它不仅仅是UI,而是囊括了APP开发用到的所有东西,包括网络、数据库、多媒体、蓝牙、NFC、脚本引擎等。

缺少或拒绝商业化运作的支持,wxWidgets的悲情结局早已是命中注定。如果不是因为Python的兴盛和wxPython的复兴,wxWidgets也许早已经和MFC一样被遗忘在了角落里。不无夸张地说,wxPython是以MFC为代表的一个时代的挽歌,更是一曲理想主义的绝唱。

1.1 组织架构

其实,wxPython谈不上什么组织架构,因为桌面程序开发所用的类、控件、组件和常量几乎都被放到了顶级命名空间wx下面了。这样做看似杂乱无章,但用起来却是非常便捷。比如,导入必要的模块,PyQt通常要这样写:

from PyQt6.QtWidgets import QApplication, QWidget, QComboBox, QPushButton, QHBoxLayout, QVBoxLayout, QColorDialogfrom PyQt6.QtGui import QIcon, QPainter, QPen, QColor, QPolygonfrom PyQt6.QtCore import Qt, QPoint

PyQt巨人般的体量限制了使用星号导入所有的模块,只能用什么导入什么。而wxPython只需要简短的一句话:

import wx

再比如一些常量的写法,wxPython同样简洁,PyQt已经长到匪夷所思的程度了。比如左对齐和确定取消键,wxPython这样写:

wx.ALIGN_LEFTwx.OK | wx.CANCEL

PyQt写出来几乎要占一整行:

Qt.AlignmentFlag.AlignLeftQMessageBox.StandardButton.Ok | QMessageBox.StandardButton.Cancel

尽管wxPython也与时俱进地增加了一些诸如wx.xml、wx.svg之类地外围模块,但除了wx这个核心模块之外,我个人觉得只有wx.aui和wx.grid模块算是必要的扩展。如果想让界面更花哨点,那就要了解以下wx.adv、wx.ribbon这两个模块,纯python构建的控件库wx.lib也绝对值得一试。总之,站在我的应用领域看,wxPython的组织架构如下图所示。根据使用频率的高低,我给各个模块标注了红黄绿蓝四种颜色。

me的保存路径怎么查看,ME软件使用(2)

1.2 安装

截至本文写作时,wxPython的最新版本是4.1.1。Windows用户和macOS用户可以直接使用下面的命令安装。

pip install -U wxPython

由于Linux平台存在发行版之间的差异,必须使用相应的包管理器进行下载和安装。例如,在Ubuntu系统上可以尝试下面的安装命令。

sudo apt-get install python3-wxgtk4.0 python3-wxgtk-webview4.0 python3-wxgtk-media4.0

me的保存路径怎么查看,ME软件使用(3)

快速体验

2.1 桌面应用程序开发的一般流程

用wxPython写一个桌面应用程序,通常分为6个步骤:

除第4步之外的其它步骤,基本都是一行代码就可以完成,第4步的复杂程度取决于功能需求的多寡和业务逻辑的复杂度。下面这段代码就是这个一般流程的体现。

# 第1步:导入模块import wx
# 第2步:创建一个应用程序app = wx.App
# 第3步:创建主窗口frame = wx.Frame(None)
# 第4步:在主窗口上实现业务逻辑st = wx.StaticText(frame, -1, 'Hello World')
# 第5步:显示窗主口frame.Show
# 第6步:应用程序进入事件处理主循环app.MainLOOP

2.2 Hello World

实际应用wxPython开发桌面应用程序的的时候,上面这样的写法难以实现和管控复杂的业务逻辑,因而都是采用面向对象的应用方式。下面的代码演示了以OOP的方式使用wxPython,并且为窗口增加了标题和图标,设置了窗口尺寸和背景色,同时也给静态文本控件StaticText设置了字体字号。

import wx
class MainFrame(wx.Frame): """从wx.Frame派生主窗口类""" def __init__(self, parent): """构造函数""" wx.Frame.__init__(self, parent, -1,style=wx.DEFAULT_FRAME_STYLE) self.SetTitle('最简的的应用程序') self.SetIcon(wx.Icon('res/wx.ico')) # 设置图标 self.SetBackgroundColour((217, 228, 0)) # 设置窗口背景色 self.SetSize((300, 80)) # 设置窗口大小 self.Center # 窗口在屏幕上居中 st = wx.StaticText(self, -1, 'Hello World', style=wx.ALIGN_CENTER) # 生成静态文本控件,水平居中 st.SetFont(wx.Font(20, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, 'Arial')) # 设置字体字号
if __name__ == '__main__': app = wx.App # 创建一个应用程序 frame = MainFrame(None) # 创建主窗口 frame.Show # 显示窗主口 app.MainLoop # 应用程序进入事件处理主循环

代码中用到了一个.png格式的图像文件文件,想要运行这段代码的话,请先替换成本地文件。至于文件格式,SetIcon方法没有限定,常见的包括.ico和.jpg在内的图像格式都支持。代码运行界面如下图所示。

me的保存路径怎么查看,ME软件使用(4)

首页 12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.