首页 > 编程问答 >如何进入网格第一列聚焦

如何进入网格第一列聚焦

时间:2024-07-29 10:57:38浏览次数:8  
标签:python tkinter

我的程序运行正常,但是当我单击网格中执行该函数并在最后一个单元格中显示结果的按钮时,结果需要出现在第一个单元格中。此外,我们需要确保第一列是重点。如何实现这一目标?

import tkinter as tk
import pandas as pd
from tkinter import *
global mrowid


def print_value1(entry,row, col):
    entry.delete(0, END)
    entry.insert(0,'testing data')
    entry.focus()
    myStringVar.set(row)

def tcompile():
    masterlines = []
    i=1
    
    for i in range(total_rows1):
        row = []
        j=2
        for j in range(total_columns):
            data = my_entries[i*total_columns+j].get()
            # data = int(data) # Removed for testing purposes
            row.append(data)
        masterlines.append(row)
    print(masterlines)
    df = pd.DataFrame(masterlines)
    df.columns =['Name', 'Code', 'Age', 'Weight','testmfa']
    df = df.fillna(0)

root = tk.Tk()

total_rows = 5
total_rows1 = 5
total_columns =5

my_entries = []
for i in range(total_rows):
    tk.Label(root, text='aaaaa11').grid(row=0, column=0)
    tk.Label(root, text='aaaaa22').grid(row=0, column=1)
    tk.Label(root, text='aaaaa33').grid(row=0, column=2)
    tk.Label(root, text='aaaaa44').grid(row=0, column=3)
    tk.Label(root, text='aaaaa555').grid(row=0, column=4)
    tk.Label(root, text='buttttonnn ').grid(row=0, column=5)
    j=1
    for j in range(total_columns):
        
        cell = tk.Entry(root)
        cell.grid(row=i, column=j)
        my_entries.append(cell)
        b = Button(root, text="print value", command= lambda entry=cell,i=i,j=j: print_value1(entry,i,j), width=5)
        b.grid(row=i, column=j+1)
        
      
button = tk.Button(root, text="Click me", command=tcompile)
button.grid(row=20, columnspan=total_columns)
myStringVar = StringVar()
ent4 = tk.Entry(root, text="", textvariable=myStringVar , width=10) 
ent4.grid(row=20, column=0)

root.mainloop()

import tkinter as tk
import pandas as pd
from tkinter import *

global mrowid

def print_value1(entry, row, col):
    entry.delete(0, END)
    entry.insert(0, 'testing data')
    # 设置焦点到第一列的对应行
    my_entries[row * total_columns].focus() 
    myStringVar.set(row)

def tcompile():
    masterlines = []

    for i in range(total_rows1):
        row = []
        for j in range(total_columns):
            data = my_entries[i*total_columns+j].get()
            row.append(data)
        masterlines.append(row)

    df = pd.DataFrame(masterlines)
    df.columns =['Name', 'Code', 'Age', 'Weight','testmfa']
    df = df.fillna(0)
    # 将结果显示在第一列的第一行
    my_entries[0].delete(0, END)
    my_entries[0].insert(0, str(df.iloc[0, 0])) # 获取 DataFrame 的第一个元素
    my_entries[0].focus() # 设置焦点到第一个单元格

root = tk.Tk()

total_rows = 5
total_rows1 = 5
total_columns = 5

my_entries = []
for i in range(total_rows):
    tk.Label(root, text='aaaaa11').grid(row=0, column=0)
    tk.Label(root, text='aaaaa22').grid(row=0, column=1)
    tk.Label(root, text='aaaaa33').grid(row=0, column=2)
    tk.Label(root, text='aaaaa44').grid(row=0, column=3)
    tk.Label(root, text='aaaaa555').grid(row=0, column=4)
    tk.Label(root, text='buttttonnn ').grid(row=0, column=5)

    for j in range(total_columns):
        cell = tk.Entry(root)
        cell.grid(row=i, column=j)
        my_entries.append(cell)
        b = Button(root, text="print value", command= lambda entry=cell,i=i,j=j: print_value1(entry,i,j), width=5)
        b.grid(row=i, column=j+1)

button = tk.Button(root, text="Click me", command=tcompile)
button.grid(row=20, columnspan=total_columns)

myStringVar = StringVar()
ent4 = tk.Entry(root, text="", textvariable=myStringVar, width=10) 
ent4.grid(row=20, column=0)

root.mainloop()

解释:

  1. print_value1 函数修改:
    • 现在使用 my_entries[row * total_columns] 来定位到对应行的第一个单元格 (列索引为0),并使用 .focus() 方法设置焦点。
  2. tcompile 函数修改:
    • 使用 my_entries[0] 获取第一个单元格。
    • 使用 df.iloc[0, 0] 获取 DataFrame 中第一个元素的值 (第一行,第一列)。
    • 使用 delete insert 方法将结果显示在第一个单元格。
    • 使用 my_entries[0].focus() 设置焦点到第一个单元格。

通过这些修改,点击按钮后,结果将显示在网格的第一行第一列,并且焦点也会自动设置到该单元格。

标签:python,tkinter
From: 78801295

相关文章

  • Python 面试常问问题及应用场景解析
    引言随着Python在数据科学、Web开发、自动化脚本、机器学习等领域中的广泛应用,越来越多的公司开始寻找具备Python技能的人才。因此,在Python面试中,面试官通常会通过一系列问题来评估应聘者的编程基础、问题解决能力和对Python特性的理解程度。本文将涵盖Python面试中最常见的......
  • python 虚拟环境
    python虚拟环境Python的venv模块允许你创建轻量级的“虚拟环境”,这些环境是独立的Python安装,用于项目的依赖隔离。每个虚拟环境都有自己的Python解释器、库和脚本,与系统中安装的Python相互隔离。这意呀着,你可以在一个项目中安装特定版本的库,而不会影响到系统上其他Pyt......
  • 使用 Azure Devops API (Python) 撰写 PR 评论
    在任何地方都找不到直接的方法。如何通过Python中的AzureDevopsAPI将注释添加到拉取请求?可以使用AzureDevOpsPythonAPI将注释添加到拉取请求。以下是执行此操作的方法:1.安装AzureDevOps库:pipinstallazure-devops2.导入必要的类并对的组......
  • Python\Python312\Lib\site-packages\torch\lib\fbgemm.dll
    在此处输入图像描述我正在尝试从HuggingFace导入GPT-2变压器模型,但当我尝试导入它时,遇到错误。即使当我尝试仅导入Torch时,我也会收到相同的错误。我已尝试重新安装Torch并完成了所有操作,包括更新VisualC++Redistributable软件包和更新我的驱动程序,但问题......
  • Python GEKKO 不更新参数
    我正在Python中使用GEKKO来估计弹跳球的轨迹。为此,我需要估计2个变量:e_1(恢复系数)和q_1(每次弹跳时的水平速度损失)。我已为其编写了以下代码,但参数似乎没有更新,尽管解算器已成功执行。参数的初始值与参数的最终优化值相同e_1=0.8和q_1=1代码:imp......
  • Python内置模块常用总结
    目录unittestunittest点击查看代码importunittestfromhtmltestreportimportHTMLTestReportclassTestOne(unittest.TestCase):@classmethoddefsetUpClass(cls)->None:print(f'setUpClass')@classmethoddeftearDownClass......
  • 使用 warpPerspective 生成​​全景图像并使用 python 进行单应拼接
    我没有获得正确的全景图像,并且图像质量随着图像的缝合而降低。我期待获得正确的360度图像,并且不会因正确拼接而降低质量。当我使用网络摄像头图像时。它应该得到没有不匹配的拼接图像。我正在研究匹配FCFS中的图像或最佳匹配的方法。创建并添加一个输入图像以及image1和im......
  • 通过 python 获取 android.view.ViewGroup 中的子项
    是否可以使用python、adb或任何库从android.view.ViewGroup获取子元素或文本,但不需要java和kotlin?我正在尝试使用python自动化android模拟器。与模拟器的交互通过adb进行。当我得到屏幕转储时,我看到我需要的元素是android.view.ViewGroup,并且text和content-......
  • Python反编译失败。 (不支持的操作码:JUMP_IF_NOT_EXC_MATCH)
    我尝试使用“pycdc.exe”反编译使用pycdc.exe失败。因为错误“不支持的操作码:JUMP_IF_NOT_EXC_MATCH”在此处输入图像描述使用pycdc.exe失败。因为错误“不支持的操作码:JUMP_IF_NOT_EXC_MATCH”你知道我为什么失败吗?(我试图编译的.pyc似乎是3.10版本)......
  • 计算机毕业设计项目推荐,基于Echarts的高校就业数据可视化管理系统 81461(开题答辩+程序
    摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对高校就业管理等问题,对高校就业管理进行研究分析,然后开发设计出高校就业数据可视化管理系统......