"পাঠ্য" উইজেটের মধ্যে দুটি এমবেডেড "এন্ট্রি" সম্পর্কিত আপেক্ষিক প্রস্থ নির্দিষ্ট করুন

লিনাক্স এবং উইন্ডোজ এন্ট্রি উইজেট আকার উল্লেখ করার ক্ষেত্রে আমার একটি সমস্যা আছে। এই এন্ট্রি লিনাক্সে তৈরি হয়েছিল:

http://i56.tinypic.com/2edaaeg.png

লিনাক্সে, তারা টেক্সট উইজেটের মধ্যে সূক্ষ্ম দেখাচ্ছে। কোডের এই লাইন দিয়ে তৈরি ২ টি এন্ট্রি সেল একের পর এক হয়:

tk.Entry (মাস্টার, প্রস্থ = 16)

প্রস্থ 16 অক্ষর দীর্ঘ হিসাবে নির্দিষ্ট করা হয়।

যাইহোক, উইন্ডোজগুলিতে কোষগুলি মাত্র অর্ধেক জায়গা নেয় এবং আমাকে ২২ এর প্রস্থ নির্দিষ্ট করতে হবে, কারণ উইন্ডোতে ফন্টের আকার ছোট।

আমার প্রশ্ন হল: টেক্সট উইজেটে এই দুইটি কোষের আপেক্ষিক প্রস্থ নির্দিষ্ট করার উপায় আছে, তাই প্রতিটি কক্ষটি পিতার উইজেটের 1/2 লাগে?

1

1 উত্তর

Within a text widget? No, there is no direct support for relative widths. within a frame? yes. If you are putting them in a text widget (I presume, so you can scroll them) you have to manage the widths yourself. You can add a binding to the event of the text widget. This fires when the text widget changes size, and you can resize all the widgets at that point.

সবচেয়ে সহজ বিষয় হল তাদের গ্রিড ব্যবহার করে একটি ফ্রেমে রাখা, তারপর ফ্রেমটি একটি ক্যানভাসে রাখুন যাতে আপনি এটি স্ক্রোল করতে পারেন।

এখানে একটি উদাহরণ:

import Tkinter as tk

class SampleApp(tk.Tk):
    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        self.canvas = tk.Canvas(self, width=200, highlightthickness=0)
        self.vsb = tk.Scrollbar(orient="vertical", command=self.canvas.yview)
        self.canvas.configure(yscrollcommand=self.vsb.set)
        self.vsb.pack(side="right", fill="y")
        self.canvas.pack(side="left", fill="both", expand=True)

        self.container = tk.Frame(self.canvas, borderwidth=0, highlightthickness=0)
        self.container.grid_columnconfigure(0, weight=1)
        self.container.grid_columnconfigure(1, weight=1)
        for i in range(30):
            e1 = tk.Entry(self.container)
            e2 = tk.Entry(self.container)
            e1.grid(row=i, column=0,sticky="ew")
            e2.grid(row=i, column=1,sticky="ew")
            e1.insert(0, "find %s" % i)
            e2.insert(0, "replace %s" % i)

        self.canvas.create_window((0,0), anchor="nw", window=self.container, tags="container")
        self.canvas.configure(scrollregion=self.canvas.bbox("all"))
        self.canvas.bind("", self.OnCanvasConfigure)

    def OnCanvasConfigure(self, event):
        self.canvas.itemconfigure("container", width=event.width)
        self.canvas.configure(scrollregion=self.canvas.bbox("all"))

if __name__ == "__main__":
    app = SampleApp()
    app.mainloop()
1
যোগ
ধন্যবাদ, ব্রায়ান - আবার :) আমি এই উইজেটের সাথে লড়াই করছি <�আমি> সত্যিই , কিন্তু আমি আশা করি এটি এখন আমার প্রয়োজনের জন্য সম্পূর্ণ।
যোগ লেখক marw, উৎস