首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tkinter Python中不可见的按钮和表

tkinter Python中不可见的按钮和表
EN

Stack Overflow用户
提问于 2021-07-11 16:07:51
回答 1查看 225关注 0票数 0

我尝试在画布中添加一个滚动条,并在画布中添加一个名为Frame-2的框架。我在那个框架里加了几个按钮和一张桌子,但是什么都看不见。如果我把所有这些东西加在根部,它们就会变得可见。我试过不同的东西,但都没有用。这是我写的代码

代码语言:javascript
复制
import myvariant
from tkinter import ttk
from tkinter import *
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from pandas import DataFrame
from PIL import ImageTk, Image

rsid_list=[8,9,5,5]

mv = myvariant.MyVariantInfo()


def main():
    main_window = Tk()
    app = info(main_window)
    main_window.mainloop()

class info:
    def __init__(self, root):
        self.root = root
        self.root.title('VCESS-ExAC')

        self.root.geometry('1600x800+0+0')

        self.root.configure(background='light grey')

        main_frame = Frame(self.root)
        main_frame.pack(fill=BOTH, expand=1, padx=0, pady=0)
        main_frame.place(x=0, y=0, width=1600, height=800)

        my_canvas = Canvas(main_frame)
        my_canvas.pack(side=LEFT, fill=BOTH, expand=1)

        my_scroll = ttk.Scrollbar(main_frame, orient=VERTICAL, command=my_canvas.yview)
        my_scroll.pack(side=RIGHT, fill=Y)

        my_canvas.configure(yscrollcommand=my_scroll.set)
        my_canvas.bind('<Configure>', lambda e: my_canvas.config(scrollregion=my_canvas.bbox(ALL)))

        self.frametwo = Frame(my_canvas)

        my_canvas.create_window((0, 0), window=self.frametwo, anchor='nw')

        table1 = LabelFrame(self.root, text="Retreived Data")  ################
        table1.pack(fill="both", expand="yes", padx=0, pady=0)  ###################
        table1.place(x=40, y=250, width=250, height=380)
        table = ttk.Treeview(table1, height="8")  #################

        table['columns'] = ['rsID']
        table.column('#0', width=120, minwidth=25)
        table.column('rsID', anchor=W, width=120)

        table.heading('#0', text='Serial No.', anchor=W)
        table.heading('rsID', text='rsID', anchor=W)

        for i in range(len(rsid_list)):
            table.insert(parent='', index='end', iid=i, text=i + 1,
                         values=(rsid_list[i]))



        table.place(x=0, y=0)  ##########################
        # VERTICAL SCROLLBAR
        yscrollbar = ttk.Scrollbar(table1, orient=VERTICAL, command=table.yview)  #############
        yscrollbar.pack(side=RIGHT, fill='y')  ##################

        # HORIZONTAL SCROLLBAR
        xscrollbar = ttk.Scrollbar(table1, orient=HORIZONTAL, command=table.xview)  ###################
        xscrollbar.pack(side=BOTTOM, fill='x')  #######################

        table.configure(yscrollcommand=yscrollbar.set, xscrollcommand=xscrollbar.set)  ##############
        table.pack(side=LEFT)
        btn_download = Button(self.frametwo, text='Save File',
                              font=("Times New Roman", 14, 'bold'), bd=3, relief=RIDGE,
                              cursor='hand2', bg='#154857', fg='white', activeforeground='white',
                              activebackground='#154857')
        btn_download.place(x=190, y=640, width=120)

        btn_graph = Button(self.frametwo, text='Graph',
                           font=("Times New Roman", 14, 'bold'), bd=3, relief=RIDGE,
                           cursor='hand2', bg='#154857', fg='white', activeforeground='white',
                           activebackground='#154857')

        btn_graph.place(x=530, y=640, width=120)

if __name__ == '__main__':
    main()

期待任何可能的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2021-07-11 18:12:58

您已经在self.frametwo中创建了按钮。您正在使用place,这意味着按钮不会影响框架的大小。由于您不给self.frametwo一个大小,它默认为一个像素宽和一个像素高。因此,框架本质上是不可见的,因此框架内的所有按钮都是不可见的。

您可以很容易地看到这一点,切换到使用packgrid按钮。当您使用packgrid时,父帧在默认情况下会增长或缩小以适应其子帧。因此,使用这两个按钮中的任何一个都会使框架变得足够大来显示按钮。

我要加..。那个框架中的一张桌子,但什么也看不见。

不是将表添加到框架,而是将其添加到根窗口。如果要将其添加到框架中,则必须使用该框架作为其父框架。而且,您可能不应该使用placeplace几乎从来都不是正确的选择,除非您准备做大量额外的工作来确保小部件是可见的,并响应小部件大小、字体大小、显示分辨率等方面的变化。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68337912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档