gpt4 book ai didi

python - Tkinter python GUI问题

转载 作者:太空宇宙 更新时间:2023-11-03 17:25:13 25 4
gpt4 key购买 nike

我正在尝试为我的学期项目创建一个菜单,但遇到了问题。

我想要一个用于控件的左 Pane ,右侧会有可视化,但是当我运行代码时,由于 t1.pack() 和 c1.pack(),在左上角区域会创建一个不需要的空间

请帮助我如何获得两个透明的 Pane 。

如果您没有解决问题,请告诉我。

提前致谢:)

__author__ = 'sagar'
try:
import tkinter as tk # for python 3
except:
#import Tkinter as tk # for python 2
from Tkinter import *
import ttk as ttk
import ctypes
import tkMessageBox

user32 = ctypes.windll.user32
WIDTH,HEIGHT = user32.GetSystemMetrics(0),user32.GetSystemMetrics(1)
WIDTH -= 50
HEIGHT -= 75

class Application: #pygubu.TkApplication
def __init__(self,root):
self.root = root

self.fr_main = Frame(self.root,background="grey",highlightcolor="red")
self.fr_main.grid(row=0,column=0,ipadx=(5*WIDTH)/100,ipady=HEIGHT)
# self.fr_main.pack()

self.btn_Simulator = Button(self.fr_main,text="Simulator")
self.btn_Simulator.grid(row=0,column=0,pady=10)
# self.btn_Simulator.pack()

self.btn_Analysis = Button(self.fr_main,text="Analysis")
self.btn_Analysis.grid(row=0,column=1,pady=10)
# self.btn_Analysis.pack()


self.fr_second = Frame(self.root,background="black",highlightcolor="red")
self.fr_second.grid(row=0,column=1,ipadx=(40*WIDTH)/100,ipady=HEIGHT)
self.nb_main = ttk.Notebook(self.fr_second)
self.nb_main.pack(expand=1,fill=BOTH)


f1 = Frame(self.nb_main)
f2 = Frame(self.nb_main)

self.nb_main.add(f2,text="Canvas")
self.nb_main.add(f1,text="Calculation")

t1 = Text(f1)
c1 = Canvas(f2)
c1.configure(background="black")
t1.pack(expand=1,fill=BOTH)
c1.pack(expand=1,fill=BOTH)


def __controlState__(self,control,state):
control.configure(state =state)

def showName(self,Enableframe,DisableFrame):

for child in Enableframe.winfo_children():
Enableframe.config(relief = RAISED)
self.__controlState__(child,"active")

for child in DisableFrame.winfo_children():
self.__controlState__(child,"disable")


if __name__ == '__main__':
root = Tk()
app = Application(root)
root.title("Network Simulator")


root.geometry('%dx%d+%d+%d' % (WIDTH,HEIGHT,0,0))
root.mainloop()

最佳答案

Please help me how can i get two clear panes.

获得并排占据窗口整个高度的两个框架的绝对最简单的方法是使用 pack 和适当的选项:

self.fr_main.pack(side="left", fill="both", expand=True)
self.fr_second.pack(side="left", fill="both", expand=True)

关键是第一个需要在左边或者右边,填充“y”方向。之后,第二个可以在任何一侧,只要它在两个方向上填充即可。

如果您想使用grid,请确保包含sticky选项,以便框架填充给定的空间:

self.fr_main.grid(row=0, column=0, sticky="nsew")
self.fr_second.grid(row=0, column=0, sticky="nsew")

使用网格,您还需要赋予列权重,以便网格知道如何分配额外空间

self.root.grid_rowconfigure(0, weight=1)
self.root.grid_columnconfigure(0, weight=1)
self.root.grid_columnconfigure(1, weight=1)

关于python - Tkinter python GUI问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32660427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com