центрировать стол в ткинтер - PullRequest
0 голосов
/ 14 ноября 2018

Я tkintering с tkinter :) и пытаюсь центрировать таблицу "StackQuestion".

Я не знаю, каков вариант для центрирования по горизонтали или по вертикали стола внутри приемного контейнера.

Первый класс Class StackQuestion определяет, как работают общие окна и как переключаться с контейнера на контейнер. Во-вторых, определите таблицу и ее содержание.

Я попытался добавить разные цвета в разные контейнеры, чтобы проверить, какой контейнер активен, и попытаться центрировать все, что находится внутри, без особого успеха.

edit: чтобы здесь не было много кода, я удалил все остальные классы и продублировал "Test" in "для F in (Test, Test):", чтобы код работал на вашем компьютере.

table to center

#utf8
#python3
import tkinter as tk
from tkinter import *
from tkinter import ttk


class StackQuestion(tk.Tk):

    def __init__(self, *args, **kwargs):

        tk.Tk.__init__(self, *args, **kwargs)
        container = ttk.Frame(self)

        container.grid()

        #windows resize management
        container.grid_rowconfigure(0, weight=1)
        container.grid_columnconfigure(0, weight=1)

        self.frames = {}
        for F in (Test, Test):
            frame = F(container, self)
            self.frames[F] = frame
            frame.grid(row=1, column=1, sticky='nsew')

        self.show_frame(Test)

    def show_frame(self, cont):

        frame = self.frames[cont]
        frame.tkraise()


class Test(tk.Frame):

    def __init__(self, parent, controller):

        tk.Frame.__init__(self, parent)


        label = tk.Label(self, text = 'StackQuestion')
        label.grid(row=0, column=0, columnspan=2)

        questions = ['Question 1', 'Question 2' , 'Question 3']
        row_number = 1
        column_number = 0

        Tree = ttk.Treeview(self, show ='headings')
        Tree['columns'] = ('Author', 'Subject', 'Date', 'Question')
        Tree.heading('Author', text = 'Author')
        Tree.heading('Subject', text = 'Subject')
        Tree.heading('Date', text = 'Date')
        Tree.heading('Question', text = 'Question')



        for value in questions :
            Tree.insert('', 'end', value, text = value)
            Tree.set(value, 'Author', value)


        Tree.grid()


app = StackQuestion()
app.geometry('1080x700')
app.configure(background='grey')
app.mainloop()

1 Ответ

0 голосов
/ 15 ноября 2018

Я не опытный программист на Python, на самом деле, я все еще новичок, и я тоже tkintering, чтобы учиться.Итак, я нашел это "noob-fix", следуя подсказке toti08

. Вы можете изменить

 container.grid()

на:

container.pack(pady=50)

Это отцентрирует его по горизонталии дайте столу немного отступа, чтобы вы могли центрировать его по вертикали или, по крайней мере, немного отступить от границы.

Надеюсь, это поможет, пока кто-то более опытный не найдет решение вашей проблемы:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...