小编cha*_*een的帖子

将Windows风格的路径转换为Unix路径

我想取一个表示路径的字符串并将其转换为绝对的Unix风格路径.此字符串可以是Windows或Unix样式,因为它是调用的结果MainClass.class.getClassLoader().getResource("").getPath(),它根据您的系统返回不同的样式路径.

(我正在为我正在编写的游戏执行此操作,其中一部分为用户提供了一个简单的"bash-ish"shell,我希望用户能够读取文件.假文件系统存储为正常在我的项目的子目录中的目录树.这个文件系统将使用Unix风格的路径,我希望能够将输入的路径与前面提到的字符串连接起来(通过一些小的编辑将它放到正确的目录中)所以我可以找到文件的内容.)

我有什么想法可以这样做吗?我已经尝试了很多东西,但我似乎无法让它在我朋友的Windows 7系统上正常工作.

目前我只是使用一个简单的东西来检查字符串是否以"C:\"或类似的东西开头,然后用斜杠替换反斜杠,但是没有办法可以用这个方法来解决这个问题. ,我相信其他人之前都遇到过不同路径风格的问题.这当然是一个非常临时的解决方案.

java path

8
推荐指数
2
解决办法
3万
查看次数

在 Python TkInter 应用程序中检测 DPI/缩放因子

我希望我的应用程序能够检测到它是否在 HiDPI 屏幕上运行,如果是,则自行扩展以供使用。正如在这个问题中所说,我知道我需要设置一个比例因子,这个因子应该是我的 DPI 除以 72;我的麻烦在于获取 DPI。这是我所拥有的:

def get_dpi(window):
    MM_TO_IN = 1/25.4
    pxw = window.master.winfo_screenwidth()
    inw = window.master.winfo_screenmmwidth() * MM_TO_IN
    return pxw/inw

root = Tk()
root.tk.call('tk', 'scaling', get_dpi(root)/72)
Run Code Online (Sandbox Code Playgroud)

这不起作用(在我的 4k 笔记本电脑屏幕上测试)。进一步检查,我意识到get_dpi()是返回96.0,那winfo_screenmmwidth()是返回1016!(谢天谢地,我的笔记本电脑没有超过一米宽)。

我假设 TkInter 在这里根据一些内部检测到的 DPI 计算宽度(以毫米为单位),错误地检测为 96,但我不确定它是从哪里得到的;我目前在 Linux 上,并xrdb -query返回 196 的 DPI,因此它没有从 X 服务器获取 DPI。

有谁知道一种跨平台的方式来获取我的屏幕 DPI,或者让 TkInter 能够正确获取它?或者,更重要的是:如何让 TkInter 在 HiDPI 屏幕上运行良好,并且在普通屏幕上也能正常工作?谢谢!

python tkinter dpi

6
推荐指数
3
解决办法
3390
查看次数

标签 统计

dpi ×1

java ×1

path ×1

python ×1

tkinter ×1