小编use*_*676的帖子

tkinter带网格的画布滚动条?

Tkinter和Python相对较新.亲切地忍受我.

我试图显示以下GUI,并希望在Frame2中有一个滚动条,一次只显示5x5按钮.看起来Tkinter Frames不支持滚动条,因此添加了一个画布(嵌入了框架)和父框架'FMas'中的滚动条.但由于某种原因,滚动条会移到屏幕的右端,不会进行任何滚动.

画布不应该在Frame2的边缘结束,滚动条就在它旁边吗?此外,我尝试使用rowspan来增加滚动条的高度以匹配5x5按钮的高度.那也行不通.

在此输入图像描述

代码(使用Python3.2):

from tkinter import *
import tkinter.ttk as ttk

mGui = Tk()

mGui.geometry("630x600")
mGui.configure(background="Gray")

mGui.columnconfigure(0, weight=1)
mGui.rowconfigure(0, weight=1)

FMas = Frame(mGui, bg="Gray")
FMas.grid(sticky=(N,E,S,W))

FMas.columnconfigure(0, weight=1)

L1 = Label(FMas, text="Frame 1 Contents")
L1.grid(row=0, column=0, pady=5, sticky=(N,W))

F1 = Frame(FMas, bg="Green", bd=2, relief=GROOVE)
F1.grid(row=1, column=0, sticky=(N,W))

ChkBox1=IntVar()
CB1 = Checkbutton(F1, text="StartCheckBox", variable=ChkBox1)
CB1.grid(row=0,column=0,padx=2)

L2 = Label(FMas, text="Frame 2 Contents")
L2.grid(row=2, column=0, pady=5, sticky=(N,W))

Can1 = Canvas(FMas, bg="Yellow")
Can1.grid(row=3, column=0, sticky=(N,W))

F2 = Frame(Can1, bg="Blue", bd=2, relief=GROOVE)
F2.grid(row=0, column=0, …
Run Code Online (Sandbox Code Playgroud)

python grid canvas tkinter scrollbar

9
推荐指数
2
解决办法
2万
查看次数

具有多个条件的python lambda列表过滤

我对使用lambda过滤列表的理解是,过滤器将返回列表中为lambda函数返回True的所有元素.在这种情况下,对于以下代码,

inputlist = []
inputlist.append(["1", "2", "3", "a"])
inputlist.append(["4", "5", "6", "b"])
inputlist.append(["1", "2", "4", "c"])
inputlist.append(["4", "5", "7", "d"])

outputlist = filter(lambda x: (x[0] != "1" and x[1] != "2" and x[2] != "3"), inputlist)
for item in outputlist: print(item)
Run Code Online (Sandbox Code Playgroud)

输出应该是

['4', '5', '6', 'b']
['1', '2', '4', 'c']
['4', '5', '7', 'd']
Run Code Online (Sandbox Code Playgroud)

但我得到的输出是

['4', '5', '6', 'b']
['4', '5', '7', 'd']
Run Code Online (Sandbox Code Playgroud)

如果我使用的话,我会得到预期的输出

outputlist = filter(lambda x: (x[0] != "1" or x[1] != "2" or x[2] != "3"), inputlist) …
Run Code Online (Sandbox Code Playgroud)

python lambda list filter multiple-conditions

4
推荐指数
3
解决办法
2万
查看次数

标签 统计

python ×2

canvas ×1

filter ×1

grid ×1

lambda ×1

list ×1

multiple-conditions ×1

scrollbar ×1

tkinter ×1