如何传递 tkinter python 模块中标签中每个项目的 sqlite 3 表的第二个项目?

福武

我有一个问题,问题是我想创建一个 post-it tkinter gui 应用程序,我想存储用户创建的所有帖子,以便他们在重新运行应用程序时可以打开它,所以我使用了 sqlite 3 模块来实现这一点,但是当用户打开现有的 post-its bcs 时,我卡住了它打开了 for 循环的最后一个内容

如果你没有得到它,这里是代码:

"""

from tkinter import *
import sqlite3

conn = sqlite3.connect("post-it.db")
row = 1

cursor = conn.cursor()

posts = cursor.execute("SELECT rowid, * FROM postits")

postsFetch = posts.fetchall()

print(f"{postsFetch}")

def createPost():
    pass

def openPost(name):
    print(name)

    post = Tk()
    text = Label(post,text=name)
    text.pack()
    post.mainloop()

window = Tk()
window.geometry("400x400")
window.config(bg="blue")

createNew = Button(text="Create new Post-it",command=createPost)
createNew.grid(column=1,row=1)

createName = Entry()
createName.grid(column=1,row=2)

frame = Frame()
frame.grid(column=2)

#the problem is at this for loop it opens the last item text

for postit in postsFetch:
    postitBtn = Button(frame,text=postit[1],command=lambda: openPost(postit[2]))
    postitBtn.grid(column=8,row=row)
    row += 1

conn.commit()

window.mainloop()
conn.close()

"""

如果你知道答案请帮忙

亨利

首先,不要Tk在一个程序中多次使用- 它可能会在以后导致问题。对于所有其他窗口,请使用Toplevel. 替换post = Tk()post = Toplevel()此处解释了
您的循环不起作用的原因要修复它,请将您的 lambda 函数更改为lambda postit = postit: openPost(postit[2]))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 python sqlite3 中添加第二个 like 子句

无法在SQLite中创建第二个表

如何从collectionView中的第二个项目开始?

如何通过 Github 发布第二个项目

Python - tkinter 如何读取第二个下拉值

如何使用python 3.x从用户输入中查找第二个最小/最大数字?

Python Tkinter-标签未显示在第二个屏幕上

在 Android Studio 中将项目添加到第二个表 SQLite 什么都不做

如何从表中查找第二个值。

如何在Soup标签对象python中获取第二个标签

Python Sqlite3:创建架构而不必使用第二个数据库

如何在Python 3中具有两个搜索词的字符串中搜索和获取第二个词?

Python 3:为什么 .append() 在场景中工作而不是第二个?

typo3 如何添加第二个后端模块

如何制作GitHub项目的第二个分支?

无法在 Android 中创建第二个 SQLite 表

未在SQLite数据库中创建第二个表

无法将数据插入到我的第二个表中,sqlite android

Sqlite 没有在第二个表中插入数据

按名称分组时将sqlite数据合并到第二个表中

如何构建python3 / tkinter项目

根据python中的第二个列表从列表中添加项目

如何使用第二个Tkinter窗口在第一个中更改图像?

选择一行中的每个第二个元素,其中包含 3 个项目

如何在 UIImage 数组中设置第二个或中间的图像?(斯威夫特 3)

如何在Symfony 3的FOSUserBundle中删除所需的第二个密码?

插入到通过 FOREIGN KEY 链接到第二个表的 2 个表中,并从 sqlite 和 python 中的另一个表中获取数据

如何使用存储过程获取查询结果(将一个表中的项目数量转换为第二个表中定义的我的单位)

将来自MySQL的ID包含到ListView中的每个项目中,并传递给第二个活动