Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x tkinter滚动条旁边出现奇怪的白色条纹_Python 3.x_Tkinter_Scrollbar - Fatal编程技术网

Python 3.x tkinter滚动条旁边出现奇怪的白色条纹

Python 3.x tkinter滚动条旁边出现奇怪的白色条纹,python-3.x,tkinter,scrollbar,Python 3.x,Tkinter,Scrollbar,因此,在“设计”tkinter应用程序时,我注意到滚动条旁边出现了一条白色条纹: 当滚动条进入活动状态时,它不会消失,但它肯定是滚动条本身的一部分,因为在我的程序中,它下面没有白色背景的东西。 无论我使用网格还是包,它似乎都会出现。在本例中,我使用网格-这里是我的代码的小摘录: class App(Tk): def __init__(self): #other stuff self.hvf=hvFrame(self,sticky=EW,showfoc

因此,在“设计”tkinter应用程序时,我注意到滚动条旁边出现了一条白色条纹:

当滚动条进入活动状态时,它不会消失,但它肯定是滚动条本身的一部分,因为在我的程序中,它下面没有白色背景的东西。 无论我使用网格还是包,它似乎都会出现。在本例中,我使用网格-这里是我的代码的小摘录:

class App(Tk):
    def __init__(self):

        #other stuff

        self.hvf=hvFrame(self,sticky=EW,showfocus=S,bg='white',padx=5,pady=5)
        self.hvf.grid(row=1,column=0,columnspan=2,sticky=NSEW,pady=5,padx=(0,5))
        sb=Scrollbar(self,orient=VERTICAL,command=self.hvf.yview,bd=0,highlightthickness=0)
        sb.grid(row=1,column=2,sticky=NSEW,pady=5)
        self.hvf.config(yscrollcommand=sb.set)
如果你再多说一点,那么。(不应为可执行文件,因为您没有extras文件,但仍应能够理解它。)

编辑:

一个可复制的小例子:

from tkinter import Tk,Frame,Scrollbar,VERTICAL,NS
root = Tk()
frame = Frame(root,height=300,width=500)
frame.grid(row=0,column=0,padx=(0,5),pady=5)
sb = Scrollbar(root,orient=VERTICAL)
sb.grid(row=0,column=1,sticky=NS,pady=5)
root.mainloop()

在测试了诸如更改windows主题或将根和帧背景更改为黑色等一些事情之后,while行仍然出现。我不能百分之百肯定,但我相信这是因为Windows上的tkinter从Windows本身提取了滚动条设计,它只是该设计的一部分。给滚动条一些视觉深度可能是一种设计选择。也就是说,您无法在Windows环境中更改滚动条的设计,因此,除非您编写自定义滚动条,否则您将无法执行此操作

示例代码:

import tkinter as tk

root = tk.Tk()
root['bg'] = 'black'
frame = tk.Frame(root, height=300, width=500, background='black')
frame.grid(row=0, column=0)
sb = tk.Scrollbar(root, orient=tk.VERTICAL)
sb.grid(row=0, column=1, sticky=tk.NS)
root.mainloop()
白色和黑色背景叠加的结果:


下面是我用于自定义滚动条的代码(但不是我自己编写的)。你可以找到我得到的帖子。

“在我的程序中没有任何东西是白色背景的。”这与你明确将
self.hvf
背景设置为白色的代码相矛盾。如果你把那个框架的背景改成红色,这个垂直的条带也会变成红色吗?不。它甚至不能,因为滚动条既不是放在hvFrame上,也不是它的子部件。就在它旁边。从hvFrames网格中可以看出,它们之间甚至有5个像素的间距(
padx=(0,5)
)。如果创建一个。我们无法运行问题本身中的代码,也无法运行您链接到的代码。我还建议至少尝试将白色改为红色,以验证您的假设。你声称程序中没有任何东西有白色背景,但显然有些东西有白色背景。也许你的一些假设是错误的。在我回答你之前,我已经试过了但我在我的问题上增加了一个小例子:如果我们不能运行这个例子,它基本上是无用的。有时我们可以猜测一个解决方案,但最好创建一个适当的可复制示例。谢谢!我担心它会像那样,但希望它只是一个可以修复的bug。但我想我会去写我自己的滚动条(我可以用你发布的例子,但自己做这些事情总是一个很好的练习。^^^)。@Nummer42o很乐意帮忙。