- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的checkbutton
被按钮覆盖。如何给按钮赋予x轴
和y轴
?
我尝试使用 l.place()
而不是 l.pack()
,但它没有返回任何内容。我应该使用什么来代替 l.pack()
来避免这种覆盖?
代码:
import tkinter as tk
import os
import tkinter.filedialog
class ScrolledFrame(tk.Frame):
def __init__(self, parent, vertical=True, horizontal=False):
super().__init__(parent)
self._canvas = tk.Canvas(self)
self._canvas.grid(row=0, column=0)
self._vertical_bar = tk.Scrollbar(self, orient="vertical",
command=self._canvas.yview)
if vertical:
self._vertical_bar.grid(row=0, column=1, sticky="ns")
self._canvas.configure(yscrollcommand=self._vertical_bar.set)
self._horizontal_bar = tk.Scrollbar(self, orient="horizontal",
command=self._canvas.xview)
if horizontal:
self._horizontal_bar.grid(row=1, column=0, sticky="we")
self._canvas.configure(xscrollcommand=self._horizontal_bar.set)
self.frame = tk.Frame(self._canvas)
self._canvas.create_window((0, 0), window=self.frame, anchor="nw")
self.frame.bind("<Configure>", self.resize)
def resize(self, event=None):
self._canvas.configure(scrollregion=self._canvas.bbox("all"))
#This is not in class
def call():
# add to scrolled frame
data = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't']
variables = []
# add widgets to scrolled frame - as parent you have to use `sf.frame` instead of `sf`
for txt in data:
var = tk.IntVar()
variables.append(var)
l = tk.Checkbutton(sf.frame, text=txt, variable=var)
l.pack()
root = tk.Tk()
sf = ScrolledFrame(root)
sf.pack()
btn1 = tkinter.Button(root, text="Source Path", command = call)
btn1.place(x = 0,y = 0 )
ent1 = tkinter.Entry(root)
ent1.place(x = 100,y = 0,width = 200,height=25)
btn1 = tkinter.Button(root, text="destination")
btn1.place(x = 0,y = 40 )
ent1 = tkinter.Entry(root)
ent1.place(x = 100,y = 40,width = 200,height=25)
root.mainloop()
输出不正确:
预期输出:
checkbutton
应在Destination Button
下方启动。
最佳答案
正如评论中提到的,不要混合使用各种布局。
那么,最好在您创建的框架中包含输入框和按钮。
这是我的建议,如果您愿意,您可以更改为其他布局:
import tkinter as tk
import os
import tkinter.filedialog
class ScrolledFrame(tk.Frame):
def __init__(self, parent, vertical=True, horizontal=False):
super().__init__(parent)
self._canvas = tk.Canvas(self)
self._canvas.grid(row=0, column=0)
self._vertical_bar = tk.Scrollbar(self, orient="vertical", command=self._canvas.yview)
if vertical:
self._vertical_bar.grid(row=0, column=1, sticky="ns")
self._canvas.configure(yscrollcommand=self._vertical_bar.set)
self._horizontal_bar = tk.Scrollbar(self, orient="horizontal", command=self._canvas.xview)
if horizontal:
self._horizontal_bar.grid(row=1, column=0, sticky="we")
self._canvas.configure(xscrollcommand=self._horizontal_bar.set)
self.frame = tk.Frame(self._canvas)
self._canvas.create_window((0, 0), window=self.frame, anchor="nw")
self.frame.bind("<Configure>", self.resize)
btn1 = tkinter.Button(root, text="Source Path", command = call)
btn1.pack()
ent1 = tkinter.Entry(root)
ent1.pack()
btn1 = tkinter.Button(root, text="destination")
btn1.pack()
ent1 = tkinter.Entry(root)
ent1.pack()
self.pack()
def resize(self, event=None):
self._canvas.configure(scrollregion=self._canvas.bbox("all"))
def call():
# add components to scrolled frame
data = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't']
variables = []
# add widgets to scrolled frame - as parent you have to use `sf.frame` instead of `sf`
for txt in data:
var = tk.IntVar()
variables.append(var)
l = tk.Checkbutton(sf.frame, text=txt, variable=var)
l.pack()
root = tk.Tk()
sf = ScrolledFrame(root)
root.mainloop()
当您单击该按钮时,您的勾选框将会出现。
关于python - 如何避免 tkinter 中的 checkbutton 被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47410970/
我是 tkinter 的新手,在使用 checkButton() 时遇到了问题。我想要它,这样当我检查“按钮 3”时,“按钮 1”和“按钮 2”也会被检查。到目前为止,这是我的代码。我看了这个问题:C
Python Checkbutton 仅读取一次值 我在 StackOverflow 中查找过类似的问题,但唯一看起来相似的是 here 。它建议在这种情况下应该将变量设置为全局,但我认为这不是一个好
我想要一个 tkinter checkbutton,它基本上有我自己的打开和关闭图像,所以不是默认的 checkbutton。我在互联网上搜索了解决方案,但找不到任何东西。我认为 ttk 样式可能是可
所以我有一个黑白图形用户界面,我需要使用复选框,我设置了它,复选框看起来没问题,直到我单击它,然后突然间复选标记不会停留在我单击之后。问题来自开始更改按钮颜色的行。但我需要这个配色方案,但我也需要能够
我对这里的(可能)范围有很大的疑问,但我看不透它。 我想让我自己的经过 css 修改的 tooglebuttons 的行为方式与其他按钮一样,我已经尝试从该站点采用它: http://jsfiddle
我有两个非常简单的复选按钮,我将它们的变量保存在一个列表 (varss) 中,还有一个按钮。但我不明白为什么当我调用 var_states(通过按下按钮)时,我无法获得关闭/打开值。任何帮助表示赞赏。
我已经使用 Tkinter 为我的最后一个应用程序创建了一个包含 20 个复选按钮的列表,但是我不知道如何检查 Checkbutton 是否被选中. 如何检查 Checkbutton 是否被选中? 最
是否可以将 PyGTK 的复选按钮的标签设置在左侧而不是默认的右侧,如下例所示? Apple: [x] Orange: [ ] Pear: [x] 最佳答案 没有。您可以通过创建一个继承自 gt
我使用 Checkbuttons 在单击它时获取数据,但我的变量没有改变,我不知道为什么。通常,未单击时它等于 0,按下时等于 1。但它的 react 就像始终没有被按下一样。 def config(
我正在尝试将 Checkbutton 与函数一起使用,my_var 永远不会改变,但它总是调用我的函数。 这里是代码: my_var = False def controllo_carta():
这是我在 Effbot 网站上找到的一个小代码示例,它与我想在我的一个程序中执行的操作很接近: from Tkinter import * fen =Tk() class test_Tk_class:
我使用以下调用创建了一个复选按钮/框 x=ttk.Checkbutton(tab1,state='disabled',command = lambda j=i,x=k: fCheckButton(j,
如何在 python 中获取 Checkbutton 的状态?我有这个: def doSomething(): if #code goes here, if checkbutton is sele
如何获得 Tkinter Checkbutton 的 'state'? 'state' 我的意思是获取它是否有复选标记。 最佳答案 当您创建它时,它需要一个 variable 关键字参数。将 Tkin
我用 frame.winfo_children() 得到了框架的小部件列表。现在我需要获取该复选按钮的值。子列表: [, , , ] 我试过的: checkbuttonwidget.get() , c
我想在右键单击菜单复选按钮时删除它。 它通常用 bind("Mouse3", deletefunction) 完成,但我需要一个复选按钮的实际实例来绑定(bind)它,并且我知道将复选按钮添加到菜单的
我想更改 ttk.Checkbutton 小部件的边框颜色,默认情况下为浅蓝色。我尝试使用 ttk.Style() 的配置功能,并设法在激活时更改整个按钮或其他内容的颜色,但不能更改复选框的边框。另一
我有一个 React 复选框组件。我试图在每次点击时更改状态并根据之前的状态运行一个函数。在 React 上,每次单击按钮时,我都试图将事件返回到 index.js 中的 console.log 函数
我正在尝试启用这些复选框: 进入这些复选框(我将这些称为CheckButtons): 正下方是当前复选框的代码: @foreach (var department in Model.S
我目前正在尝试创建一个 GUI 来比较两个不同文件夹之间的文件,并拥有一个我现在正在尝试构建的基本框架。 我在窗口的左侧、右侧和底部有三个框架,每个框架都有两个复选按钮。我希望能够彼此独立地选择每个复
我是一名优秀的程序员,十分优秀!