跳转至

博客

处理窗口大小的踩坑

最近在给某个项目设计窗口尺寸的时候,发现怎么设置都会出现设定尺寸和实际在窗口中的尺寸都不一样,而且距离屏幕左上角越远,差值越大,但是很奇怪的是我单独写的测试脚本都没有问题。后来无意间发现可能是这个项目的GUI设置了自适应高DPI1,这就导致实际在窗口中的尺寸和通过geometry()获取到的不一样,比如你在代码中设定的坐标系为x=100px、y=100px,如果是在100%缩放的系统中,通过测量获取到的位置确实是(100,100),但是在125%缩放的系统中,你能测量到的尺寸却是(125,125)

下一个编程语言的选择

阅读前说明

首先我需要声明,作为一个业余python开发者,我对python还是比较喜欢的,丰富的第三方库+解释性语言特性,这对于做一些简单易用的脚本、工具等场景非常方便易用1,但如果要做一些相对复杂的项目,python的某些特性可能给我的开发带来一些麻烦

关于UI设计的一点看法

阅读前说明

本人不是专门做设计的,因此以下内容只为个人的观点,仅作参考

在做了一段时间桌面应用开发后,越来越感觉做一个GUI软件不难,但是做好一个GUI软件不容易,你需要考虑的细节有很多,可能在某些情况下会比开发一个Cli软件的细节更多,最起码需要考虑到这些细节:

pyinstaller使用注意事项

  1. 当对多模块脚本进行打包的时候,需要对界面入口进行打包,同时该脚本名称得符合一定的规范,如果名字是类似__init__.py,打包的时候大概率会出现问题,无法打包

python打包吐槽

解释型语言打包简直让人折磨

为什么这么说呢?下面列举几个我遇到的坑

工作目录问题

就如在这里提到的某个程序的问题,如果在python项目中采用相对路径,就很有可能会出现通过脚本运行没有任何问题,但是使用第三方工具打包编译的时候就会出现一些奇怪的问题,所以如果你做的python项目需要编译,建议单独写一个类或函数去处理工作目录的问题,下面是我自己在用的一段用来处理工作目录的类

对面向对象的一点理解

之前在学习python面向对象的时候,有些教程中会讲解“类方法”、“静态方法”、“属性方法”这些概念,但是在初期开发python项目的时候感觉这些概念用不上,只是使用“纯粹”的面向对象也能写出一个能用的工具来;然而看到有些开发者的代码中会经常遇到这些,那这几个概念该如何去理解呢?以及会在哪些场景下会用到?于是便有了此文

下载模块问题

正常情况下直接使用pip download moudles就行了,但是某些模块不支持32位,有的需要利用源码进行编译,非常麻烦,如果想要现成编译好的模块,可以到网站上去下载特定版本的模块,这就需要非常耐心去找了