前言

最近想开发一套Netty网关日志分析程序,用来分析设备的原始数据。因为网关是放在linux服务器上,之前查看日志是通过Xftp工具将日志下载到本地,然后找到对应的日志数据进行分析。

对于运维人员来说,上述的日志分析方式难度是相当大的,比如我想查看某天几点几分到几点几分的设备原始数据来分析设备的运行情况,需要将整个日志全部下载到本地,然后再海量日志文件里面找到对应的时间点。

而且,本身我也不太希望运维人员直接对服务器进行操作,人工操作风险太大,所以就考虑给运维人员开发一个小工具,既可以让他们快速的找到对应日志,又可以减少服务器的直接操作。

最初我准备用C# Winform来做这个,毕竟界面界面相对好做很多,而且我个人对Python也并不熟练。不过抱着学习的角度,最后还是准备采用Python+PyQt5来做这个开发。

言归正传,下面开始写一些我的学习心得。

下载工具包

(1)下载并安装PyCharm

下载地址:https://www.jetbrains.com/pycharm/download/

PyCharm我采用的是jetbrains-agent.jar方式进行激活的,具体方法可以参考:http://www.360doc.com/content/19/0717/13/36367108_849345042.shtml,因为之前开发网关的时候使用的是IntelliJ IDEA,这里激活方法基本是一致的。

(2)安装PyQt5

打开命令窗口,我这边使用的是Windows操作系统(Win+R,然后输入cmd)

执行命令:

pip install pyqt5 -i http://mirrors.aliyun.com/pypi/simple/

我使用的是阿里云的镜像地址,如果直接使用:pip install pyqt5,鬼知道会失败多少次,总是在Timeout!

(3)安装PyQt5-tools

执行命令:

pip install pyqt5-tools -i http://mirrors.aliyun.com/pypi/simple/

PyCharm安装PyQt5插件

点击File—>Settings

找到Tools下面的External Tools

如果之前没有设置过拓展工具的话,这里是没有任何信息的,我们需要点击上面的+号添加需要的工具

我们需要添加的工具有两个,一个是QtDesigner,一个是PyUIC,如上图红框里面的两个拓展工具。

QtDesigner:是我们做界面的一个设计工具,打开QtDesigner,展现给我们的是一个可视化的UI绘制界面,其通过拖拽的方式放置控件可以随时查看控件效果,最终QtDesigner会将我们做好的界面转成.ui文件。下面会说到如何使用QtDesigner来设计界面。

PyUIC:将我们通过QtDesigner做好的界面生成的.ui文件转成.py文件,这样我们就可以使用Python对界面元素进行操作了。

(1)添加QtDesigner

我将Python安装在了D:\Python目录下,所以通过pip添加的依赖也会在D:\Python目录下,我们找到Scripts下的designer.exe

Working directory可以手动输入$FileDir$或者点击+号选择对应的Macros

(2)添加PyUIC

Program:选择python.exe

Arguments:输入c.pyuic  $FileName$ -o $FileNameWithoutExtension$.p

Working directory:输入$FileDir$

到此我们PyCharm安装PyQt5插件完成。

如何使用PyQt5

首先我们创建一个项目

这里有个细节需要注意,需要勾选红框标注点,否则我们安装的PyQt5库就没办法使用了。

然后点击Create即可。

创建好项目后,项目名称那里右键找到External Tools,然后选择我们之前添加的QtDesigner即可打开UI设计界面了。

Qt Designer界面如下,选择创建一个Main Window即可开始我们的UI绘制。

经过一番拖拽和方法定义后(后续文章会说详细的设计),生产了一个.ui的文件

最后右键此文件找到External Tools

选择PyUIC生成了一个.p的文件,对这个文件进行重命名为.py文件,就是我们最后得到的Python界面文件,最后定义一个类,导入我们生产的.py文件,就可以在实现类里面控制界面上的控件了。

界面是做出来了,但是相对于C#的winform来说,设计体验不是很好,感觉相对复杂了很多,也可能是与我的习惯有关。

Python开发Windows桌面应用程序(一)PyCharm+PyQt5开发环境搭建相关推荐

  1. 用HTML开发Windows桌面应用程序

    转载自:http://blog.csdn.net/xiaoaiai/article/details/46043077 如果要说明这个题目上的问题,就先要说一下,软件开发的种种方式,从最初的命令行软件开 ...

  2. python开发windows桌面程序,python开发windows桌面应用

    为什么用Python开发桌面应用程序 1)wxWidgets是一个比MFC优雅的库,TortoiseCVS用wxWidges而不用MFC,就是因为wxWidgets好用,而不是为了可以移植. 2)Py ...

  3. 如何创建一个 Windows 桌面应用程序?

    工具:Visual Studio 2017 Community 在大学期间,不过学习 C/C++ 还是 Java,每次写的程序都是控制台黑框框,有时候想设计一个可视化的应用程序却不知从何下手,大学里面 ...

  4. 使用Python开发windows桌面程序

    使用Python开发windows桌面程序 一.开发前期准备 1. boa-constructor-0.6.1.bin.setup.exe #一个wxWidges的集成开发环境,简单如Delphi,可 ...

  5. html+js开发windows桌面程序的方案(miniblink)

    最近需要开发windows桌面程序,但由于界面复杂多变且项目周期较短,故放弃完全使用qt或mfc来开发,首先考虑了Electron,但发现其打包的程序实在太大超过了100M,偶然间发现某vpn软件使用 ...

  6. Flutter教程之Windows桌面应用程序开发

    Flutter教程之Windows桌面应用程序开发 一.前言 二.环境安装 三.创建项目 四.已有项目添加其他平台支持 一.前言 Flutter 是 Google 开源的 UI 工具包,帮助开发者通过 ...

  7. python 桌面程序自动化测试_对Windows桌面应用程序进行UI自动化测试

    题记:本文简述如何利用appium对Windows桌面应用程序进行UI自动化测试. 所谓UI自动化测试,就是模拟一个用户,对应用程序的UI进行操作,以完成特定场景的功能性集成测试. 要对Windows ...

  8. Windows桌面应用程序(1-1-1st) 使用DirectX进行开发的先决条件

    当您开始使用DirectX开发Windows应用程序时,请牢记此页面上的先决条件.这包括您在进入之前需要了解的技术. 我应该知道如何使用DirectX开发Windows游戏? 在开始使用DirectX ...

  9. php开发桌面应用程序_使用PHP开发跨平台桌面应用程序的3种方法

    php开发桌面应用程序 PHP as a cross-platform desktop app development language? Blasphemy! Nonetheless, it's p ...

最新文章

  1. 轻松学习LINUX系列教程推出
  2. 学习笔记Hadoop(十三)—— MapReduce开发入门(1)—— MapReduce开发环境搭建、MapReduce单词计数源码分析
  3. 突破三个自我,你就不光是老板的料
  4. 软件管理定律系列之布鲁克斯定律
  5. python--14 递归
  6. 触发键盘_雷蛇这款光轴机械键盘开箱评测,光速触发,颜值爆表
  7. 「一本通 6.4 例 4」曹冲养猪(CRT)
  8. e - 数据结构实验之查找五:平方之哈希表_面试中常被问到的Hash表,你了解吗
  9. beautifulsoup解析动态页面div未展开_实战|Python轻松实现动态网页爬虫(附详细源码)...
  10. win查看GPU信息
  11. 水彩绘画艺术效果PS动作
  12. hdu1166 敌兵布阵(模板题 单点修改 + 区间查询)
  13. 潜入蓝翔技校二十天 探究蓝翔黑客真正的奥秘
  14. Spring框架学习笔记05:SpringAop
  15. scrapy爬取昵图网图片
  16. 音频文件格式转化,librosa库支持的语音文件类型
  17. iphone ios 视频采集AVCaptureSessionPresetHigh/Medium/Low分辨率等参数
  18. 吴军:顶级工程师能让中国走向浪潮之巅
  19. jquery返回顶部特效代码 网页滚动返回顶部特效
  20. VSCode 添加自定义注释(附带红色警戒经典注释风格)

热门文章

  1. 写给父亲的语音计算器(位图的加载,忽然领悟了资源编译器的加载c#,五)
  2. php客流量统计,智慧店铺客流量统计系统
  3. Qt C++ 录屏录音功能实现(avilib+ffmpeg)以及动态库生成
  4. react 返回一个页面_react项目中实现返回不刷新
  5. 720°VR全景网站制作
  6. GUID 分区表详解
  7. python可以自动拆分表格吗_Python 拆分表格并发送邮件
  8. epub文件是什么文件?如何在windows系统上打开?
  9. vscode Couldn‘t start client Rust Language Server
  10. 物体识别全流程(Ubuntu16.04)结合ROS