Я пытаюсь сделать так, чтобы текстовое поле занимало большую часть нижнего ряда экрана, а полоса прокрутки занимала только самую правую часть. Но в настоящее время мой код приводит к тому, что текстовое поле и полоса прокрутки разделяются 50/50 посередине окна. Почему это происходит и как это исправить?
#in windowstart
import tkinter as tk
from tkinter import ttk,font
def create_root():
root = tk.Tk()
root.title("Aghast")
root.geometry("1400x800")
root.configure(background="dark grey")
root.rowconfigure(0,weight=1)
root.rowconfigure(1,weight=1)
root.columnconfigure(0,weight=1)
return root
#in another file
root = create_root()
main_container = tk.Frame(root,height=800,width=1400)
main_container.grid(row=0,column=0,sticky="nsew")
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
main_container.rowconfigure(0, weight=3)
main_container.rowconfigure(1,weight=1)
main_container.rowconfigure(2,weight=1)
main_container.columnconfigure(0, weight=1)
logbox_frame = tk.Frame(root)
logbox_frame.grid(row=1,column=0,sticky=tk.EW)
room_container = tk.Frame(main_container)
room_container.grid(row=0, column=0, sticky="nsew")
room_container.configure(background="dark gray")
class logbox(tk.Frame):
def __init__(self,parent):
super().__init__(parent)
self.textframe = tk.Frame(self)
self.textframe.columnconfigure(0,weight=10)
self.textframe.columnconfigure(1,weight=1)
for i in range(6):
self.textframe.rowconfigure(i, weight=1 if i == 5 else 0)
self.textframe.grid(row=0, column=0, sticky="nsew")
self.scrollbar = tk.Scrollbar(self.textframe)
self.scrollbar.grid(row=5,column=1,sticky="e")
self.textbox = tk.Text(
self.textframe,
height=8,
wrap="word",
yscrollcommand=self.scrollbar.set,
)
self.textbox.grid(row=5,column=0,sticky="nsew")
self.textbox.config(state="disabled")
self.scrollbar.config(command=self.textbox.yview)
self.textbox.tag_config("combat", foreground="red")
self.textbox.tag_config("treasure", foreground="gold")
self.textbox.tag_config("lore", foreground="purple")
self.textbox.tag_config("peaceful", foreground="green")
self.textbox.tag_config("default", foreground="black")
self.grid(row=5, column=0,columnspan=2)
logbox_frame.tkraise()
room_container.tkraise()
Logbox = logbox(logbox_frame)
Logbox.tkraise()
root.mainloop()
Неправильное форматирование текстового поля ⇐ Python
Программы на Python
-
Anonymous
1774388161
Anonymous
Я пытаюсь сделать так, чтобы текстовое поле занимало большую часть нижнего ряда экрана, а полоса прокрутки занимала только самую правую часть. Но в настоящее время мой код приводит к тому, что текстовое поле и полоса прокрутки разделяются 50/50 посередине окна. Почему это происходит и как это исправить?
#in windowstart
import tkinter as tk
from tkinter import ttk,font
def create_root():
root = tk.Tk()
root.title("Aghast")
root.geometry("1400x800")
root.configure(background="dark grey")
root.rowconfigure(0,weight=1)
root.rowconfigure(1,weight=1)
root.columnconfigure(0,weight=1)
return root
#in another file
root = create_root()
main_container = tk.Frame(root,height=800,width=1400)
main_container.grid(row=0,column=0,sticky="nsew")
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
main_container.rowconfigure(0, weight=3)
main_container.rowconfigure(1,weight=1)
main_container.rowconfigure(2,weight=1)
main_container.columnconfigure(0, weight=1)
logbox_frame = tk.Frame(root)
logbox_frame.grid(row=1,column=0,sticky=tk.EW)
room_container = tk.Frame(main_container)
room_container.grid(row=0, column=0, sticky="nsew")
room_container.configure(background="dark gray")
class logbox(tk.Frame):
def __init__(self,parent):
super().__init__(parent)
self.textframe = tk.Frame(self)
self.textframe.columnconfigure(0,weight=10)
self.textframe.columnconfigure(1,weight=1)
for i in range(6):
self.textframe.rowconfigure(i, weight=1 if i == 5 else 0)
self.textframe.grid(row=0, column=0, sticky="nsew")
self.scrollbar = tk.Scrollbar(self.textframe)
self.scrollbar.grid(row=5,column=1,sticky="e")
self.textbox = tk.Text(
self.textframe,
height=8,
wrap="word",
yscrollcommand=self.scrollbar.set,
)
self.textbox.grid(row=5,column=0,sticky="nsew")
self.textbox.config(state="disabled")
self.scrollbar.config(command=self.textbox.yview)
self.textbox.tag_config("combat", foreground="red")
self.textbox.tag_config("treasure", foreground="gold")
self.textbox.tag_config("lore", foreground="purple")
self.textbox.tag_config("peaceful", foreground="green")
self.textbox.tag_config("default", foreground="black")
self.grid(row=5, column=0,columnspan=2)
logbox_frame.tkraise()
room_container.tkraise()
Logbox = logbox(logbox_frame)
Logbox.tkraise()
root.mainloop()
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия