如何讓Tkinter中的框架以全屏模式顯示? ? ?我看到這個代碼,這是非常有用的,它是非常有用的,但是這是一個可能的,當我點擊Esc自動''還原''窗口? 可能它是一個非常複雜的代碼,請幫助。在Tkinter上顯示全屏模式
回答
這會創建一個全屏窗口。按Escape
默認情況下將窗口大小調整爲'200x200 + 0 + 0'。如果移動窗口或調整窗口大小,則Escape
將在當前幾何圖形和以前的幾何圖形之間切換。
import Tkinter as tk
class FullScreenApp(object):
def __init__(self, master, **kwargs):
self.master=master
pad=3
self._geom='200x200+0+0'
master.geometry("{0}x{1}+0+0".format(
master.winfo_screenwidth()-pad, master.winfo_screenheight()-pad))
master.bind('<Escape>',self.toggle_geom)
def toggle_geom(self,event):
geom=self.master.winfo_geometry()
print(geom,self._geom)
self.master.geometry(self._geom)
self._geom=geom
root=tk.Tk()
app=FullScreenApp(root)
root.mainloop()
我認爲這是你在找什麼:
Tk.attributes("-fullscreen", True) # substitute `Tk` for whatever your `Tk()` object is called
可以使用wm_attributes
,而不是attributes
了。
然後,只需綁定ESC鍵和它添加到處理程序:
Tk.attributes("-fullscreen", False)
的答案提到這一點(與wm_attributes
)另一個問題。所以,我就是這麼發現的。但是,沒有人直接出去說這是因爲某種原因的答案。所以,我覺得這是值得發佈。
下面是一個使用F11切換全屏和關閉,並在那裏工作的例子(上是Xubuntu 14.04測試)逃避只會將其關閉:
import sys
if sys.version_info[0] == 2: # Just checking your Python version to import Tkinter properly.
from Tkinter import *
else:
from tkinter import *
class Fullscreen_Window:
def __init__(self):
self.tk = Tk()
self.tk.attributes('-zoomed', True) # This just maximizes it so we can see the window. It's nothing to do with fullscreen.
self.frame = Frame(self.tk)
self.frame.pack()
self.state = False
self.tk.bind("<F11>", self.toggle_fullscreen)
self.tk.bind("<Escape>", self.end_fullscreen)
def toggle_fullscreen(self, event=None):
self.state = not self.state # Just toggling the boolean
self.tk.attributes("-fullscreen", self.state)
return "break"
def end_fullscreen(self, event=None):
self.state = False
self.tk.attributes("-fullscreen", False)
return "break"
if __name__ == '__main__':
w = Fullscreen_Window()
w.tk.mainloop()
如果你想隱藏的菜單,也有隻有兩種方式,我發現要做到這一點。一個是摧毀它。另一個是做一個空白菜單來切換。
self.tk.config(menu=self.blank_menu) # self.blank_menu is a Menu object
然後將它切換回菜單,當你想讓它再次出現時。
self.tk.config(menu=self.menu) # self.menu is your menu.
爲什麼你手動使用'w.tk.destroy'?我從來沒有在Python Tk應用程序中看到過這個。 – exhuma
@exhuma(出於某種原因,我沒有看到您的評論。)好的問題。感謝您指出了這一點。這裏似乎沒有必要。我想我在第一次開始Tkinter編程時看到別人這樣做了,我沒有多想它就繼續保持它。然而,在我編程一次的某個程序或其他程序中可能有其原因,但我不知道是什麼原因。無論如何,它不會影響執行,但是我將在此處將代碼編輯出來,並將主循環放在構造函數的外部。 – Shule
@exhuma我發現背後有一些原因。顯然,沒有它的某些開發環境會發生故障(儘管在常規Python環境中似乎並不需要它)。此鏈接提供了一個代碼示例和解釋:http://effbot.org/tkinterbook/tkinter-hello-again.htm – Shule
我認爲,如果你正在尋找全屏而已,沒有必要設置幾何形狀或MAXSIZE等
你只需要做到這一點:
- 如果您正在Ubuntu上:
root=tk.Tk()
root.attributes('-zoomed', True)
-and如果您正在使用的窗口:
root.state('zoomed')
現在對於全屏之間切換,以最小化它到任務欄,你可以使用:
Root.iconify()
這將創建在Mac上完全全屏窗口(無可見的菜單欄)不搞亂鍵綁定
import tkinter as tk
root = tk.Tk()
root.overrideredirect(True)
root.overrideredirect(False)
root.attributes('-fullscreen',True)
root.mainloop()
- 1. AS3 FLVPlayback全屏模式顯示黑屏
- 2. 如何在macOS上以全屏顯示tkinter應用程序?
- 3. 以全屏模式顯示的圖片
- 4. NSToolbar進入全屏模式時顯示
- 5. 顯示IE在全屏模式下,但顯示任務欄
- 6. MPMoviePlayerController全屏模式實際上不會在整個屏幕上顯示
- 7. 不要在全屏模式下顯示偏好屏幕Android
- 8. 在Android的屏幕上全屏顯示插頁式廣告
- 9. MacOS上的vscode:將導航菜單顯示爲全屏模式
- 10. 如何在全屏模式下在IE8中顯示滾動條?
- 11. 如何在iPhone上顯示全屏iAd?
- 12. tinyMCE在全屏模式下顯示默認的HTML代碼
- 13. AS3在全屏模式下顯示幀頻
- 14. 如何在Android肖像模式下將WebcamTexture全屏顯示?
- 15. Android OnItemClick在全屏模式下顯示圖像
- 16. Java和全屏模式在多個顯示器
- 17. Kinect在全屏模式下顯示深度圖像
- 18. SDL假全屏模式在Linux下的雙顯示器設置
- 19. 顯示自定義光標在全屏幕模式 - 的Flex 3.0
- 20. 全屏Windows與Tkinter
- 21. 如何在iPhone上創建全屏模態狀態顯示?
- 22. 顯示NSWindow在全屏
- 23. 如何僅在移動模式下以全屏模式顯示圖像?
- 24. 如何顯示啓動全屏幕上,並在縱向模式下
- 25. 模式的看法有了全屏當前上下文顯示在iOS的8
- 26. Android全屏顯示
- 27. 顯示屏全PHTH
- 28. 全屏模式在Materializecss
- 29. 使用XNA在多個顯示器上全屏顯示
- 30. 在iOS的外部顯示器上顯示全屏
注意:''root.overrideredirect(True)'''不會在我的機器上調用任何東西(Ubuntu)。沒有'root.overrideredirect'就會顯示標題欄。 –
jfs
這對我不起作用。它唯一做的事情是最大化窗口。 – exhuma
這不是全屏,但最大化...不完全相同,對於真正的全屏,請參閱@Shule的答案 – dm76