![](/img/trans.png)
[英]how to open the save file dialog box in python without using tkinter
[英]How to get a black file dialog box using Tkinter on Mac OS?
我正在嘗試實現黑色文件對話框(Mac OS 深色模式)。 我正在使用 Tkinter 文件對話框模塊( import tkinter.filedialog
)。
當我從任何其他應用程序打開文件對話框時,它們具有黑色背景,但是當我從tkinter.filedailog
打開它時,它們具有默認的白色背景。
這是Tkinter
打開的文件對話框的圖像:
從別處打開時 Mojave 暗模式支持的黑色文件對話框:
如果有任何方法可以使用Tkinter
獲得黑色文件對話框,請幫助我我真的很想要黑色對話框。
樣本.py
import tkinter.filedialog as _FD
_Master = _FD.Tk()
_Master.withdraw()
from kivy.core.window import Window as _kivy_window
class Open(_FD.Open):
def __init__(self, multiple=False, **options):
if multiple: options["multiple"]=1
super(Open, self).__init__(**options)
def show(self, **options):
s = super().show(**options)
_kivy_window.raise_window()
return s
if __name__ == "__main__":
from kivy.app import App
from kivy.uix.button import Button
_kivy_window.size = (250, 250)
class TestApp(App):
def open(self, *a):
s = Open(multiple=True)
s = s.show()
if s: print(s)
def build(self):
return Button(text='Hello World', on_release=self.open)
TestApp().run()
可能會出現無法讓您在 Tkinter GUI 上獲得適當暗模式支持的問題。 所有這些都在我的 Mac 上,每個系統可能會有所不同。
默認情況下,暗模式並不適用於所有應用程序,例如某些第三方應用程序和不受信任的開發人員的應用程序。 我們仍然可以為這些應用程序實現暗模式,但並非每個應用程序都能正常工作,這也許就是為什么它不是設置中的一個選項。
如果您對使用命令行沒有信心,您可能不應該這樣做。
啟用暗模式,然后在終端中運行此命令:
defaults write -g NSRequiresAquaSystemAppearance -bool No
注意: “是”表示對所有窗口禁用,“否”表示對所有窗口啟用。
運行命令后注銷並重新登錄以注意更改。
如果您想恢復為默認設置,只需使用以下命令刪除NSRequiresAquaSystemAppearance
設置。
defaults delete -g NSRequiresAquaSystemAppearance
如果您使用 Anaconda,那么您只需要執行 1st Step 即可在所有應用程序上獲得暗模式,然后從命令行將 Tcl/Tk 更新到 8.6.9。 (更多詳情)
conda install -c conda-forge tk
conda install -c conda-forge/label/gcc7 tk
conda install -c conda-forge/label/broken tk
conda install -c conda-forge/label/cf201901 tk
結果
更新:
Anaconda 已將 Tcl/Tk 更新至 8.6.10 並添加了一個支持 macOS 不同外觀模式(深色、淺色)的新命令,這意味着更改任何模式都會更改窗口和小部件的背景顏色,但它是一個有點毛病。 而且我們還必須通過foreground = 'black
來查看Button
的文本 以及其他一些小部件。
conda install -c conda-forge/label/cf202003 tk
解決第一個問題后,您將在 Tkinter 上獲得暗模式,但如果您有 Tcl/Tk 8.6.8,則在 Tkinter 窗口上會出現黑屏。
示例圖像
此問題已在 Tcl/Tk 8.6.9 中修復,但由於 python.org 尚未對其進行更新,並且還提供了他們自己的 Tcl/Tk 8.6.8 私有副本。 他們不尋找或使用 Tcl/Tk 的任何第三方或系統副本(更多詳細信息)。 因此,如果您想從第三方安裝它,那將是浪費時間。
我測試了內置 Tcl/Tk 8.6.9 的Python 3.7.2rc1 ,它在 Mojave 暗模式下運行良好,但由於在 Tk 8.6.9.1 中發現了一些回歸,他們恢復了已發布的 python.org 3.7.2 macOS 安裝程序到 Tcl/Tk 8.6.8。
示例圖像
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.