AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-21613659

sendog3c's questions

Martin Hope
sendog3c
Asked: 2024-11-30 11:51:28 +0800 CST

使用 tkinter 中的条目进行过滤时显示条纹行标签

  • 5

我希望在使用 tkinter 中的条目进行过滤时,我的 Treeview 能够显示条纹行标记。代码在过滤之前运行良好,过滤函数也运行良好,但它不显示条纹行标记。有人可以帮忙解决它。我认为根据对 Python 和 tkinter 的了解程度,那里一定有无用的代码。代码如下:

问题在于 def execute_search(event) 函数:

#import modules 
from tkinter import *
from tkinter import ttk

#Load data
Data = [
        ["John", "Elder", 1, "3223 NE 36Th", "Fort Lauderdale", "Florida", "33308"], 
        ["Johny", "Elder", 2, "3223 NE 36Th", "Fort Lauderdale", "Florida", "33308"],
        ["Joe", "Elder", 3, "3223 NE 36Th", "Fort Lauderdale", "Florida", "33308"],
        ["marty", "Elder", 4, "3223 NE 36Th", "Fort Lauderdale", "Florida", "33308"],
        ["don", "Elder", 5, "3223 NE 36Th", "Fort Lauderdale", "Florida", "33308"],
        ["mike", "Elder", 6, "3223 NE 36Th", "Fort Lauderdale", "Florida", "33308"],
        ["Paula", "Elder", 7, "3223 NE 36Th", "Fort Lauderdale", "Florida", "33308"],
        ["Vianney", "Elder", 8, "3223 NE 36Th", "Fort Lauderdale", "Florida", "33308"],
        ["Mariana", "Elder", 9, "3223 NE 36Th", "Fort Lauderdale", "Florida", "33308"],
        ["Ignacio", "Elder", 10, "3223 NE 36Th", "Fort Lauderdale", "Florida", "33308"],
        ["Paul", "Elder", 11, "3223 NE 36Th", "Fort Lauderdale", "Florida", "33308"],
        ["Pablo", "Elder", 12, "3223 NE 36Th", "Fort Lauderdale", "Florida", "33308"],
        ["Pedro", "Elder", 13, "3223 NE 36Th", "Fort Lauderdale", "Florida", "33308"],
        ["Pascal", "Elder", 14, "3223 NE 36Th", "Fort Lauderdale", "Florida", "33308"],
        ["Peter", "Elder", 15, "3223 NE 36Th", "Fort Lauderdale", "Florida", "33308"],
       ]

#create a window
root = Tk()

root.title('Users List')
#root.iconbitmap()
root.geometry("1000x500")

#Add some style
style = ttk.Style()

#Pick a Theme
style.theme_use('default')

#Configure the Treeview color
style.configure("Treeview", 
                bakground="#D3D3D3",
                FOREGROUND="black",
                rowheight=25,
                fieldbackground="#D3D3D3")

#Change selected color
style.map('Treeview', 
          bakground=[('selected', "#D347083")])

#Create the Treeview Frame
tree_frame = Frame(root)
tree_frame.pack(pady=10)

#Create the Treeview Scrollbar
tree_scroll = Scrollbar(tree_frame)
tree_scroll.pack(side=RIGHT, fill=Y)

#Create the Treeview
my_tree = ttk.Treeview(tree_frame, yscrollcommand=tree_scroll.set, selectmode="extended")
my_tree.pack()

#Configure Scrollbar
tree_scroll.config(command=my_tree.yview)

#Defining Columns
my_tree['columns'] = ("First Name", "Last Name", "ID", "Address", "City", "State", "Zipcode")

#Formating our columns
my_tree.column("#0", width=0, stretch=NO)
my_tree.column("First Name", anchor=W, width=140)
my_tree.column("Last Name", anchor=W, width=140)
my_tree.column("ID", anchor=CENTER, width=100)
my_tree.column("Address", anchor=CENTER, width=140)
my_tree.column("City", anchor=CENTER, width=140)
my_tree.column("State", anchor=CENTER, width=140)
my_tree.column("Zipcode", anchor=CENTER, width=140)

#Creating headings
my_tree.heading("#0", text="", anchor=W)
my_tree.heading("First Name", text="First Name", anchor=W)
my_tree.heading("Last Name", text="Last Name", anchor=W)
my_tree.heading("ID", text="ID", anchor=CENTER)
my_tree.heading("Address", text="Address", anchor=CENTER)
my_tree.heading("City", text="City", anchor=CENTER)
my_tree.heading("State", text="State", anchor=CENTER)
my_tree.heading("Zipcode", text="Zipcode", anchor=CENTER)

#Add our data to the screen
global count
count = 0


for record in Data:
       if count % 2 == 0:
            my_tree.insert(parent='', index='end', iid=count, text='', values=(record[0], 
            record[1], record[2], record[3], record[4], record[5], record[6]), tags= 
            ('evenrow',))
       else:    
            my_tree.insert(parent='', index='end', iid=count, text='', values=(record[0], 
            record[1], record[2], record[3], record[4], record[5], record[6]), tags= 
            ('oddrow',))
            #increment counter
            count +=1
            #print(record)


#create a frame
data_frame = LabelFrame(root, text="Record")
data_frame.pack(fill="x", expand="yes", padx=20)

#create the entry
fn_label = Label(data_frame, text="First Name")
fn_label.grid(row=0, column=0, padx=10)
fn_entry = Entry(data_frame)
fn_entry.grid(row=0, column=1, padx=10)

#function to filter data
def execute_search(event):

       global count
       count = 0 

       query = fn_entry.get().lower()
       print(query)
       for item in my_tree.get_children():
              my_tree.delete(item)

       data_list = []
       for item in Data:
              if query in item[0].lower():
                     my_tree.insert("", "end", values=item)
              for item in Data:
                     data_list.append(item)
                
#Create straped row tags
my_tree.tag_configure('oddrow', background="white")
my_tree.tag_configure('evenrow', background="lightblue")


#Not in use
def query_database():

        global count
        count = 0    

        for record in Data:
                if count % 2 == 0:
                        my_tree.insert(parent='', index='end', iid=count, text='', values= 
                        (record[0], record[1], record[2], record[3], record[4], record[5], 
                        record[6]), tags=('evenrow',))
                else:    
                        my_tree.insert(parent='', index='end', iid=count, text='', values= 
                        (record[0], 
                        record[1], record[2], record[3], record[4], record[5], record[6]), 
                        tags=('oddrow',))
                        #increment counter
                        count +=1
                        #print(record)

fn_entry.bind('<KeyRelease>', execute_search)


root.mainloop()
tkinter
  • 1 个回答
  • 26 Views
Martin Hope
sendog3c
Asked: 2024-02-24 21:09:40 +0800 CST

Python 最佳实践:在哪里安装 Python 及其模块

  • 5

我是新程序员(如果我可以这样称呼自己的话)

运行我的 python 代码时遇到某些问题。正如您在以下信息中看到的那样,我似乎已经安装了多个版本的 python,或者可能在不同的活页夹中安装了相同的版本。当我运行代码时,它可能会产生问题。

另外,我已在另一个活页夹中安装了所有模块或库。

我真正想知道的是拥有非常干净的 Python 及其模块安装的最佳实践或规则是什么。


C:\Users\HP\OneDrive\Python Training>pip list 包版本 -------- ---------- asgiref 3.7.2 colorama 0.4.6 Django 5.0.2 numpy 1.26.4 枕头 10.2。 0 pip 24.0 pyarrow 15.0.0 pylance 0.9.18 sqlparse 0.4.4 tzdata 2024.1 C:\Users\HP\OneDrive\Python Training>其中 python C:\Users\HP\AppData\Local\Programs\Python\Python312\python。 exe C:\Users\HP\AppData\Local\Microsoft\WindowsApps\python.exe C:\Users\HP\OneDrive\Python Training>


python
  • 1 个回答
  • 31 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve