python - tkinter 选项卡中的滚动条无法正常工作。滚动条位于我的 gui 应用程序的底部,而不是覆盖整个选项卡
问题描述
滚动条位于我的应用程序的底部,而不是覆盖整个选项卡,实际上滚动条不起作用。我应该改变什么?
我在 tkinter 中制作了这个应用程序,但它看起来不像我想要的那样。下面的代码显示了它的外观,并且在链接中我放置了我的应用程序的屏幕
import tkinter as tk
from tkinter import ttk
from tkinter import scrolledtext
from tkinter import Menu
from functools import partial
from math import sqrt, erfc, pi
from scipy.integrate import quad ## funkcja calkujaca
import numpy as np
from matplotlib import cm
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
win = tk.Tk()
win.title("Aplikacja do projektowania")
tabControl = ttk.Notebook(win) # Create Tab Control
tab1 = ttk.Frame(tabControl) # Create a tab
tabControl.add(tab1, text='Obliczenia poglądowe') # Add the tab
tab2 = ttk.Frame(tabControl) # Add a second tab
tabControl.add(tab2, text='Obliczenia zaawansowane') # Make second tab visible
tabControl.pack(expand=1, fill="both") # Pack to make visible
dane = ttk.LabelFrame(tab1, text=' Wstaw dane ')
dane.grid(column=0, row=0, padx=8, pady=2)
dane2 = ttk.LabelFrame(tab2, text=' Wartości: ')
dane2.grid(column=0, row=0, padx=5, pady=4)
dane2 = ttk.LabelFrame(tab2, text=' Wartości: ')
dane2.grid(column=0, row=0, padx=5, pady=4)
我猜问题是由下面的代码造成的,但我不知道如何改变它
scrollbar = tk.Scrollbar(win)
scrollbar.pack(side = tk.RIGHT, fill = tk.Y)
scrollbar.config(command = dane2.config)
a0_label = ttk.Label(dane2, text=" ")
a0_label.grid(column=0, row=0, sticky='W')
a1_label = ttk.Label(dane2, text="Maksymalne godzinowe obciążenie gruntu: [W] ")
a1_label.grid(column=0, row=1, sticky='W')
win.mainloop()
如果有人知道如何处理此错误,我将不胜感激
它的外观图片:
解决方案
你告诉 tkinter 打包 tabControl 并使用所有可用空间。在打包tabControl之前创建并打包滚动条,这样就没有你想要滚动条使用的空间了。
import tkinter as tk
from tkinter import ttk
win = tk.Tk()
win.title("Aplikacja do projektowania")
tabControl = ttk.Notebook(win) # Create Tab Control
tab1 = ttk.Frame(tabControl) # Create a tab
tabControl.add(tab1, text='Obliczenia poglądowe') # Add the tab
tab2 = ttk.Frame(tabControl) # Add a second tab
tabControl.add(tab2, text='Obliczenia zaawansowane') # Make second tab visible
# Packing the scrollbar before the tabControl
scrollbar = tk.Scrollbar(win)
scrollbar.pack(side = tk.RIGHT, fill = tk.Y)
tabControl.pack(expand=1, fill="both") # Pack to make visible
dane = ttk.LabelFrame(tab1, text=' Wstaw dane ')
dane.grid(column=0, row=0, padx=8, pady=2)
dane2 = ttk.LabelFrame(tab2, text=' Wartości: ')
dane2.grid(column=0, row=0, padx=5, pady=4)
dane2 = ttk.LabelFrame(tab2, text=' Wartości: ')
dane2.grid(column=0, row=0, padx=5, pady=4)
a0_label = ttk.Label(dane2, text=" ")
a0_label.grid(column=0, row=0, sticky='W')
a1_label = ttk.Label(dane2, text="Maksymalne godzinowe obciążenie gruntu: [W] ")
a1_label.grid(column=0, row=1, sticky='W')
scrollbar.config(command = dane2.config)
win.mainloop()
推荐阅读
- android - 是否可以在列表视图上方放置一些东西?
- vue.js - Vuejs - 具有不同数据的相同组件
- html - Bulma:跨列对齐表单水平字段
- java - 添加和删除 JTextField
- swiftui - Swift5 SwiftUI 符合 Hashable 导致未声明类型
- javascript - react-native : 从 WebView 的 url 获取内部 api 调用数据
- wordpress - Wordpess Timber - 结合 $context 以获得两种帖子类型?
- python - 将 matplotlib 包添加到第 3 方软件附带的 python 中?
- javascript - 无法从开玩笑的 redux 操作中访问状态
- python - 使用 selenium for python 滚动可滚动元素