我试图弄清楚如何获得 tkInter 窗口标题栏的高度,但似乎找不到任何关于它是如何完成的信息。
我试过使用root.geometry(),似乎root.geometry()只返回窗口内容的大小,而不是带有标题栏和边框大小的窗口的总大小。我看到其他人说你需要向操作系统询问这些事情。我希望避免这种情况,因为它会使代码平台独立变得更加困难。必须有一种方法可以做到这一点,而无需为此前往操作系统。有谁知道我必须做什么才能获得这些信息?
我的系统:
操作系统:Linux
KDE 等离子: 5.16.4
KDE 框架: 5.61.0
import tkinter
root = tkinter.Tk()
root.geometry("250x250+100+100")
root.update_idletasks()
print('root.winfo_x() = ', root.winfo_x())
print('root.winfo_y() = ', root.winfo_y())
print('root.geometry() = ', root.geometry())
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
测试代码结果:
root.winfo_x() = 100
root.winfo_y() = 100
root.geometry() = 250x250+100+100
Run Code Online (Sandbox Code Playgroud)
使用屏幕标尺应用程序测量的窗口高度为:
x=102, y=286
Run Code Online (Sandbox Code Playgroud) 当我尝试使用与 librosa 模块相关的任何内容时,出现错误:
Traceback (most recent call last):
File "C:\Users\User1\Documents\test3.py", line 36, in <module>
x, Fs = librosa.load(fn_mp3, sr=None)
File "C:\Program Files\Python38\lib\site-packages\librosa\core\audio.py", line 129, in load
with sf.SoundFile(path) as sf_desc:
File "C:\Program Files\Python38\lib\site-packages\soundfile.py", line 629, in __init__
self._file = self._open(file, mode_int, closefd)
File "C:\Program Files\Python38\lib\site-packages\soundfile.py", line 1172, in _open
openfunction = _snd.sf_wchar_open
AttributeError: cffi library 'C:\Program Files\Python38\lib\site-packages\_soundfile_data\libsndfile64bit.dll' has no function, constant or global variable named 'sf_wchar_open'
Run Code Online (Sandbox Code Playgroud)
在出现错误之前,我libsndfile64bit.dll在站点包中创建了一个名为_soundfile_data的文件夹,并libsndfile64bit.dll从此处下载,然后将其添加到该文件夹中,然后我提供的错误弹出。我曾尝试在 SO 上搜索答案,但没有相关问题,我无法编辑,libsndfile64bit.dll因此我无能为力。我使用的是 Windows …