Python ubuntu filedialog.askdirectory版本过低

Python ubuntu filedialog.askdirectory版本过低,python,ubuntu,tkinter,Python,Ubuntu,Tkinter,我试图调用ubuntu的文件对话框,用python3.6选择一个目录,代码如下: from tkinter import filedialog filedialog.askdirectory() 但当我运行此程序时,一个非常旧的版本文件对话框显示: 关于如何使用python调用ubuntu的最新文件对话框,您有什么想法吗?tkinter提供的UI组件(以及底层的tk库)与您的桌面可能使用的GTK或Qt库提供的UI组件不同 ,您可以使用 from tkinter.ttk imp

我试图调用ubuntu的文件对话框,用python3.6选择一个目录,代码如下:

    from tkinter import filedialog
    filedialog.askdirectory()
但当我运行此程序时,一个非常旧的版本文件对话框显示:


关于如何使用python调用ubuntu的最新文件对话框,您有什么想法吗?

tkinter提供的UI组件(以及底层的
tk
库)与您的桌面可能使用的GTK或Qt库提供的UI组件不同

,您可以使用

from tkinter.ttk import *
它支持桌面的外观,但(afaict)不幸的是
文件对话框
小部件不受支持。

它不是旧版本,是GTK的标准主题。您必须使用主题来更改它。但是Linux默认只有三种样式

import tkinter as tk
from tkinter import ttk
from tkinter import filedialog

root = tk.Tk()

root.style = ttk.Style()

print(root.style.theme_names())

root.style.theme_use('clam')

filedialog.askdirectory()

root.mainloop()
classis/默认值:

蛤蜊:

alt:

您可以在安装模块时获得更多主题

pip install ttkthemes
和代码

import tkinter as tk
from tkinter import ttk
import ttkthemes

root = tk.Tk()

root.style = ttkthemes.ThemedStyle()

for i, name in enumerate(sorted(root.style.theme_names())):
    b = ttk.Button(root, text=name, command=lambda name=name:root.style.theme_use(name))
    b.pack(fill='x')

root.mainloop()
样式列表

克罗克:

辐射度:


这不是旧版本,它是GTK的标准主题。您必须使用主题来更改它。