Anonymous
Python Tkinter Grid Ширина столбца Расширение не требуется. Первая строка не поддается подсчету.
Сообщение
Anonymous » 02 дек 2024, 19:14
У меня есть три столбца с полосой прокрутки, и их нужно расширить и растянуть до размера окна, но я не могу увеличить ширину столбца в соответствии с размером экрана, и мне нужна верхняя первая строка, которая должна быть стабильной, например заголовок. код ниже
Код: Выделить всё
import tkinter as tk
from tkinter import *
from tkinter import ttk
root = tk.Tk()
root.title("TEST")
root.geometry("800x600")
frame=ttk.Frame(root)
frame.pack(expand=1, fill=BOTH)
canvas = tk.Canvas(frame)
scrollbar = ttk.Scrollbar(frame, orient="vertical", command=canvas.yview)
canvas.configure(yscrollcommand=scrollbar.set)
frame3s = ttk.Frame(canvas)
frame3s.bind("", lambda e: canvas.configure(scrollregion=canvas.bbox("all")))
RCnt = 0
DataRow = {}
LabCnt = 0;
for gh in range(40):
DataRow[LabCnt] = ttk.Label(frame3s, text=LabCnt, font=("Arial", 16, "bold"),cursor="hand2", justify=tk.CENTER,relief="solid")
DataRow[LabCnt].grid(row=RCnt, column=0, sticky='ew')
LabCnt += 1
DataRow[LabCnt] = ttk.Label(frame3s, text=LabCnt, font=("Arial", 16, "bold"),cursor="hand2", justify=tk.CENTER,relief="solid")
DataRow[LabCnt].grid(row=RCnt, column=1, sticky='ew')
LabCnt += 1
DataRow[LabCnt] = ttk.Label(frame3s, text=LabCnt, font=("Arial", 16, "bold"),cursor="hand2", justify=tk.CENTER,relief="solid")
DataRow[LabCnt].grid(row=RCnt, column=2, sticky='ew')
LabCnt += 1
RCnt += 1
frame3s.columnconfigure(gh, weight=1)
frame3s.rowconfigure(gh, weight=1)
frame.columnconfigure(0, weight=1)
frame.rowconfigure(0, weight=1)
canvas.create_window((0, 0), window=frame3s, anchor="nw")
canvas.grid(row=0, column=0, sticky="nsew")
scrollbar.grid(row=0, column=1, sticky="ns")
def _on_mousewheel(event):
canvas.yview_scroll(int(-1 * (event.delta / 120)), "units")
canvas.bind_all("", _on_mousewheel)
while True:
root.update()
пожалуйста, помогите мне добиться увеличения ширины столбца в зависимости от размера экрана.
Подробнее здесь:
https://stackoverflow.com/questions/792 ... corallable
1733156041
Anonymous
У меня есть три столбца с полосой прокрутки, и их нужно расширить и растянуть до размера окна, но я не могу увеличить ширину столбца в соответствии с размером экрана, и мне нужна верхняя первая строка, которая должна быть стабильной, например заголовок. код ниже [code]import tkinter as tk from tkinter import * from tkinter import ttk root = tk.Tk() root.title("TEST") root.geometry("800x600") frame=ttk.Frame(root) frame.pack(expand=1, fill=BOTH) canvas = tk.Canvas(frame) scrollbar = ttk.Scrollbar(frame, orient="vertical", command=canvas.yview) canvas.configure(yscrollcommand=scrollbar.set) frame3s = ttk.Frame(canvas) frame3s.bind("", lambda e: canvas.configure(scrollregion=canvas.bbox("all"))) RCnt = 0 DataRow = {} LabCnt = 0; for gh in range(40): DataRow[LabCnt] = ttk.Label(frame3s, text=LabCnt, font=("Arial", 16, "bold"),cursor="hand2", justify=tk.CENTER,relief="solid") DataRow[LabCnt].grid(row=RCnt, column=0, sticky='ew') LabCnt += 1 DataRow[LabCnt] = ttk.Label(frame3s, text=LabCnt, font=("Arial", 16, "bold"),cursor="hand2", justify=tk.CENTER,relief="solid") DataRow[LabCnt].grid(row=RCnt, column=1, sticky='ew') LabCnt += 1 DataRow[LabCnt] = ttk.Label(frame3s, text=LabCnt, font=("Arial", 16, "bold"),cursor="hand2", justify=tk.CENTER,relief="solid") DataRow[LabCnt].grid(row=RCnt, column=2, sticky='ew') LabCnt += 1 RCnt += 1 frame3s.columnconfigure(gh, weight=1) frame3s.rowconfigure(gh, weight=1) frame.columnconfigure(0, weight=1) frame.rowconfigure(0, weight=1) canvas.create_window((0, 0), window=frame3s, anchor="nw") canvas.grid(row=0, column=0, sticky="nsew") scrollbar.grid(row=0, column=1, sticky="ns") def _on_mousewheel(event): canvas.yview_scroll(int(-1 * (event.delta / 120)), "units") canvas.bind_all("", _on_mousewheel) while True: root.update() [/code] пожалуйста, помогите мне добиться увеличения ширины столбца в зависимости от размера экрана. Подробнее здесь: [url]https://stackoverflow.com/questions/79243808/python-tkinter-grid-column-width-not-expanding-need-first-row-not-scorallable[/url]