2010-09-04 1 views
2

Так что я до сих пор простое окно питон Tkinter и я добавление текста, кнопок и т.д.Как добавить поле в окно tkinter?

сниппет:

class Cfrm(Frame): 

    def createWidgets(self): 

     self.text = Text(self, width=50, height=10) 
     self.text.insert('1.0', 'some text will be here') 
     self.text.tag_configure('big', font=('Verdana', 24, 'bold')) 


     self.text["state"] = "disabled" 
     self.text.grid(row=0, column=1) 

     self.quitw = Button(self) 
     self.quitw["text"] = "exit", 
     self.quitw["command"] = self.quit 
     self.quitw.grid(row=1, column=1) 


    def __init__(self, master=None): 
     Frame.__init__(self, master) 
     self.pack() 
     self.createWidgets() 

проблема, я хочу, чтобы иметь около 15-20 рх поле вокруг окна, я везде искал, и я не мог найти решение. Также

self.text.tag_configure('big', font=('Verdana', 24, 'bold')) 

не работает. Любые возможные решения?

ответ

8

Хорошо, вот решение, которое я нашел на вопрос 1:

self.grid(padx=20, pady=20) 

Удаление .text кажется изменить весь кадр. Я до сих пор не решил проблему 2.

5

Используйте параметры пэда (padx, pady, ipadx, ipady) для команды сетки, чтобы добавить прописку вокруг текстового виджета. Например:

self.text.grid(row=0, column=1, padx=20, pady=20) 

Если вы хотите отступы вокруг всего графического интерфейса, добавить отступы, когда пакет кадра приложения:

self.pack(padx=20, pady=20) 

Когда вы говорите, команда тег не работает, как вы определяете «не работает»? Вы получаете сообщение об ошибке? Является ли шрифт большим, но не смелым, смелым, но не большим, ...? Команда отлично выглядит для меня, и когда я запускаю ее, она работает нормально.

Ваш пример не показывает, что вы на самом деле применяете этот тег к диапазону текста. Ты? Если да, то как? Если вы выполните следующее, что произойдет?

self.text.insert("1.0", 'is this bold?', 'big') 
+0

, когда я делаю: self.text.insert (1.0 '? Это смелый', 'большой') абсолютно ничего changes.The текст показывает, но не жирный Padx, Pady не работает, единственная проблема заключается в том, что она добавляет дополнение к виджету, а не всему окну, поэтому между текстом и кнопкой есть пробел. Можно ли сделать что-то вроде изменения размера окна относительно его текущего размера? –

+0

self.pack (padx ...) очень полезно! – qed

1

Быстрый способ сделать это - настроить стиль рельефа на ровный, тогда вам нужно только отрегулировать ширину рамки.

self.Border = Tkinter.Frame(self, relief='flat', borderwidth=4) 
+0

такой же предмет как мое решение. –

 Смежные вопросы

  • Нет связанных вопросов^_^