2013-06-24 11 views
13

मैं अपनी पाइथन लिपि में एक सूचना विंडो दिखाना चाहता हूं जो उबंटू पर चल रहा है। मैं निम्नलिखित कोड का उपयोग कर रहा:टिंकर संदेशबॉक्स?

import tkMessageBox 
tkMessageBox.showinfo("Say Hello", "Hello World") 

यह काम करता है, लेकिन वहाँ एक खाली विंडो प्रदर्शित, शीर्ष पर संदेश बॉक्स के साथ है। मैं खिड़की से कैसे छुटकारा पा सकता हूं और स्क्रीन पर संदेश बॉक्स को बस केंद्र में रख सकता हूं (विंडो मैनेजर gnome 2 है)?

यह केवल कमांड लाइन स्क्रिप्ट से कुछ जानकारी प्रदर्शित करने के लिए है (एक पासवर्ड इसलिए मैं इसे कंसोल पर प्रतिध्वनि नहीं करना चाहता)।

उत्तर

18

टिंकर के पास रूट विंडो होना चाहिए। यदि आप एक नहीं बनाते हैं, तो आपके लिए एक बनाया जाएगा। आप इस जड़ खिड़की नहीं करना चाहते हैं, इसे बनाने के लिए और फिर इसे छिपाने:

import Tkinter as tk 
root = tk.Tk() 
root.withdraw() 
tkMessageBox.showinfo("Say Hello", "Hello World") 

आपका अन्य विकल्प नहीं उपयोग tkMessageBox है, लेकिन इसके बजाय जड़ विंडो में अपना संदेश डाल दिया। इस दृष्टिकोण का लाभ यह है कि आप विंडो को बिल्कुल उसी तरह दिख सकते हैं जैसे आप देखना चाहते हैं।

import Tkinter as tk 
root = tk.Tk() 
root.title("Say Hello") 
label = tk.Label(root, text="Hello World") 
label.pack(side="top", fill="both", expand=True, padx=20, pady=20) 
button = tk.Button(root, text="OK", command=lambda: root.destroy()) 
button.pack(side="bottom", fill="none", expand=True) 
root.mainloop() 

(व्यक्तिगत रूप से मैं एक अधिक वस्तु उन्मुख दृष्टिकोण का चयन करेंगे, लेकिन मैं कोड इस उदाहरण के लिए छोटे रखने के लिए कोशिश कर रहा हूँ)

+0

सही, धन्यवाद – user1491250

+0

वहाँ किसी भी तरह से मैं पाठ चयन इसलिए मैंने इसे कॉपी कर सकते हैं कर सकते हैं है? – user1491250

+0

@ उपयोगकर्ता 14 9 1250: हाँ। लेबल के बजाय टेक्स्ट विजेट का प्रयोग करें। आप लेबल की तरह दिखने के लिए सीमावर्ती और रंगों को ट्विक कर सकते हैं। –

3

के रूप में जड़ खिड़की बनाई गई है एक "फ्लैश" से बचने के लिए स्वीकृत उत्तर पर इस मामूली बदलाव का उपयोग करें:

import Tkinter as tk 
root = tk.Tk() 
root.overrideredirect(1) 
root.withdraw() 
tkMessageBox.showinfo("Say Hello", "Hello World") 
2

व्यक्तिगत रूप से संदेशबॉक्स आयात करें। उदाहरण के लिए:

from tkinter import * 
import tkinter.messagebox 

या

from tkinter import messagebox 
संबंधित मुद्दे