2011-11-01 17 views
26

पर पूर्णस्क्रीन मोड प्रदर्शित करें टिंकर में पूर्णस्क्रीन मोड में प्रदर्शित करने के लिए कोई फ्रेम कैसे प्राप्त कर सकता है? ? ? जब मैं Esc खिड़की मारा कि स्वचालित रूप से '' नीचे पुनर्स्थापित '' मैं इस कोड को देखा था, यह बहुत उपयोगी,टिंकर

>>> import Tkinter 
>>> root = Tkinter.Tk() 
>>> root.overrideredirect(True) 
>>> root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight())) 

है, लेकिन है कि एक के लिए संभव है? शायद यह एक बहुत ही जटिल कोड है, कृपया मदद करें।

उत्तर

18

यह एक पूर्णस्क्रीन विंडो बनाता है। 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() 
+2

अप खिलवाड़ के बिना नोट: 'root.overrirectirect (True) '' ' के साथ मेरी मशीन (उबंटू) पर कुछ भी कॉल नहीं करता है। 'Root.overrirectirect' के बिना शीर्षक बार दिखाया गया है। – jfs

+1

यह मेरे लिए काम नहीं करता है। खिड़की को अधिकतम करने वाली एकमात्र चीज है। – exhuma

+2

यह पूर्णस्क्रीन नहीं है लेकिन अधिकतम ... वास्तविक पूर्णस्क्रीन के लिए बिल्कुल समान नहीं है, @Shule – dm76

47

मुझे लगता है कि यह आपके लिए क्या देख रहे हैं:

Tk.attributes("-fullscreen", True) # substitute `Tk` for whatever your `Tk()` object is called 

आप wm_attributes बजाय attributes का भी उपयोग कर सकते हैं।

तो बस बच कुंजी बाँध और हैंडलर से जोड़ें:

Tk.attributes("-fullscreen", False) 

(wm_attributes के साथ) इस का संकेत एक और प्रश्न का उत्तर। तो, इस तरह मैंने पाया। लेकिन, कोई भी सीधे बाहर नहीं गया और कहा कि यह किसी कारण से जवाब था। तो, मुझे लगा कि यह पोस्टिंग के लायक था।

यहाँ एक काम कर उदाहरण (Xubuntu 14.04 पर परीक्षण) पूर्ण स्क्रीन पर और बंद और जहां टॉगल करने के लिए F11 का उपयोग करता है है भागने इसे बंद ही हो जाएगा: यदि आप एक मेनू को छिपाने के लिए चाहते हैं, तो भी,

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. 
+2

से उत्तर देखें, आप मैन्युअल रूप से 'w.tk.destroy' का उपयोग क्यों कर रहे हैं? मैंने इसे पहले कभी पाइथन टैंक ऐप में नहीं देखा है। – exhuma

+1

@exhuma (मैंने अब तक किसी कारण से आपकी टिप्पणी नहीं देखी है।) अच्छा सवाल है। यह बात बताने के लिए धन्यवाद। यह अनावश्यक लगता है। मुझे लगता है कि मैंने किसी और को यह देखा था जब मैं पहली बार टिंकर प्रोग्रामिंग शुरू कर रहा था, और मैंने इसे इसके बारे में सोचने के बिना रखा। हालांकि, कुछ कार्यक्रम या अन्य में इसका एक कारण हो सकता है कि मैं एक बार प्रोग्रामिंग कर रहा था, लेकिन मुझे नहीं पता कि यह कारण क्या था। जो कुछ भी मामला है, यह निष्पादन को चोट नहीं पहुंचाता है, लेकिन मैं इसे यहां कोड से संपादित कर दूंगा और मुख्य रूप से कन्स्ट्रक्टर के बाहर भी रखूंगा। – Shule

+2

@exhuma मुझे इसके पीछे कुछ कारण मिला। जाहिर है, कुछ विकास वातावरण इसके बिना खराबी (हालांकि आपको नियमित पायथन पर्यावरण में इसकी आवश्यकता नहीं है)। यह लिंक एक कोड उदाहरण और एक स्पष्टीकरण प्रदान करता है: http://effbot.org/tkinterbook/tkinter-hello-again.htm – Shule

6

मुझे लगता है कि आप पूर्ण स्क्रीन के लिए देख रहे हैं केवल, ज्यामिति से सेट नहीं करना या MAXSIZE आदि

तुम बस ऐसा करने की जरूरत:

-यदि आप ubuntu पर काम कर रहे:

root=tk.Tk() 
root.attributes('-zoomed', True) 

-और अगर आप खिड़कियों पर काम कर रहे हैं:

root.state('zoomed') 

अब फुलस्क्रीन के बीच टॉगल, यह टास्कबार करने के लिए आप उपयोग कर सकते हैं कम करने के लिए के लिए:

Root.iconify() 
4

यह मैक पर एक पूरी तरह से पूर्ण स्क्रीन विंडो (कोई दिखाई मेनूबार के साथ) का निर्माण करेगा कीबाइंडिंग

import tkinter as tk 
root = tk.Tk() 

root.overrideredirect(True) 
root.overrideredirect(False) 
root.attributes('-fullscreen',True) 


root.mainloop() 
संबंधित मुद्दे