2011-05-30 13 views
9

मैं थोड़ी देर के साथ खेल रहा हूं और मुझे पता नहीं लगा कि "चिपचिपा" विशेषता मेरे बटन के साथ क्यों काम नहीं कर रही है। मैंने एनडब्ल्यू होने के लिए चिपचिपा निर्दिष्ट किया है जो मेरे बटन को ऊपरी बाएं किनारे पर चिपकने का कारण बनता है लेकिन किसी कारण से यह ऊपर दाईं ओर चिपक जाता है। कोई विचार क्यों?बटन चिपचिपा संपत्ति को ठीक से कैसे सेट करें?

from tkinter import * 
from tkinter import ttk 

def test(): 
    name = userName.get() 
    text = "Hello {0}! Pleased to meet you.".format(name) 
    greeting.set(text) 

window = Tk() 

greeting = StringVar() 
userName = StringVar() 

name = Entry(window, textvariable=userName) 
name.grid(column=1, row=1, sticky=NW) 

button = Button(window, text="greeting", command=test) 
button.grid(column=2, row=1, sticky=NW) 

label = Label(window, textvariable=greeting) 
label.grid(column=1, row=2, sticky=NW) 

#creating a rectangle 
canvas = Canvas(window) 
canvas.grid(column=1, row=2) 
#attributes are x,y coordinates of two points 
x = canvas.create_rectangle(5,5,115,115)  

mainloop() 

उत्तर

7

चिपचिपा विशेषता पूरे ग्रिड या पूरी खिड़की के बजाय विजेट में मौजूद सेल पर लागू होती है। तो, विजेट है जो इसके सेल के एनडब्ल्यू कोने में लगा हुआ है, यह सिर्फ इतना है कि आप यह नहीं बता सकते कि सेल बिल्कुल बटन की तरह ही चौड़ाई है।

चूंकि आप ऊपरी दाएं सेल (पंक्ति 1, कॉलम 2) में बटन डाल रहे हैं, लेकिन कहें कि आप इसे ऊपरी बाएं (पूरी विंडो के?) में चाहते हैं, यह जानना मुश्किल है कि आप क्या चाहते हैं। यह जानने के बिना कि आप क्या हासिल करने की कोशिश कर रहे हैं, किसी भी सिफारिश को करना मुश्किल है।

ग्रिड लेआउट प्रबंधक सीखने का सबसे आसान तरीका पेपर और पेंसिल के साथ है। कुछ gridded ग्राफिंग पेपर प्राप्त करें और अपने विजेट कागज पर खींचें। यह तब स्पष्ट हो जाता है कि अपने विजेट कहां रखें।

तुम भी विशेष रूप से weight विशेषता के संबंध में, rowconfigure और columnconfigure आदेशों के बारे में जानने की जरूरत है। इस विशेषता के साथ आप पहचान सकते हैं कि कौन सी पंक्तियां और कॉलम उगाए गए हैं और किसी भी अतिरिक्त स्थान को लेने के लिए सिकुड़ते हैं। यह जानना भी उपयोगी है कि आप रिक्त पंक्तियों और स्तंभों में इन विशेषताओं को लागू कर सकते हैं। यह उपयोगी है यदि आप अपने इंटीरियर विजेट्स को एक ही आकार में रखना चाहते हैं, और आपके गुई के किनारों पर कोई अतिरिक्त लागू होता है (आमतौर पर उपयोगी नहीं होता है, हालांकि कभी-कभी यह होता है)।

अंगूठे के किसी न किसी नियम के रूप में, प्रत्येक विंडो में एक "प्रमुख" विजेट होना चाहिए - जो यूआई पर हावी है। आमतौर पर यह एक कैनवास या टेक्स्ट विजेट है, लेकिन यह होना आवश्यक नहीं है। उस विजेट को ढूंढें और पंक्ति और कॉलम दें जो 1 (एक) के वजन में है ताकि उपयोगकर्ता खिड़की का आकार बदल सके और बढ़ जाए। आपके मामले में यह पंक्ति 2 में कैनवास होगा, कॉलम 1.

1

मुद्दा यह है कि ग्रिड सेल वास्तव में बटन के रूप में एक ही आकार है - ... आप E या W में अगर यह नोटिस नहीं होगा आप देख सकते हैं कि एक दूसरे के नीचे अपने सभी विगेट्स रखकर (सभी पंक्ति 0, और कॉलम 0-4) आप देखेंगे कि उस स्थिति में बटन एनडब्ल्यू दिखाता है। उम्मीद है कि यह मदद करता है ...