Python丨tkinter开发常用的29种功能用法(建议码住)

news2024/11/29 12:46:09

在Python软件开发中,tkinter中command功能的作用是为按钮、菜单等组件绑定回调函数,用户操作该组件时会触发相应的函数执行。

本文涵盖了各种组件和功能:

1、为Button组件(按钮)绑定回调函数

import tkinter as tk
def say_hello():
    print("Hello World!")

root = tk.Tk()
button = tk.Button(root, text="点我", command=say_hello)
button.pack()
root.mainloop()

2、为Checkbutton组件(多选择钮)绑定回调函数

import tkinter as tk

def show_selection():
    print("Selection is:", var.get())

root = tk.Tk()

var = tk.BooleanVar()

checkbutton = tk.Checkbutton(root, text="Select me", variable=var, command=show_selection)
checkbutton.pack()

root.mainloop()

3、为Radiobutton组件(单选择钮)绑定回调函数

import tkinter as tk

def show_selection():
    print("Selection is:", var.get())

root = tk.Tk()

var = tk.StringVar()

radiobutton1 = tk.Radiobutton(root, text="Option 1", variable=var, value="Option 1", command=show_selection)
radiobutton2 = tk.Radiobutton(root, text="Option 2", variable=var, value="Option 2", command=show_selection)

radiobutton1.pack()
radiobutton2.pack()

root.mainloop()

4、为Listbox组件(列表组件)绑定回调函数

import tkinter as tk

def show_selection(event):
    selection = event.widget.curselection()
    print("Selection is:", event.widget.get(selection))

root = tk.Tk()

listbox = tk.Listbox(root)
listbox.insert("end", "Option 1")
listbox.insert("end", "Option 2")
listbox.bind("<<ListboxSelect>>", show_selection)

listbox.pack()

root.mainloop()

5、为Spinbox组件(条框)绑定回调函数

import tkinter as tk
# Python学习交流扣裙:708525271
def show_selection():
    print("Selection is:", spinbox.get())

root = tk.Tk()

spinbox = tk.Spinbox(root, values=(1, 2, 3,4,5), command=show_selection)
spinbox.pack()

root.mainloop()

运行后,选择不同的参数,回传到了spinbox组件

6、为Scale组件(滑条)绑定回调函数

import tkinter as tk

def show_selection(value):
    print("Selection is:", value)

root = tk.Tk()

scale = tk.Scale(root, from_=0, to=100, command=show_selection)
scale.pack()

root.mainloop()

7、为Scrollbar组件(滚动条)绑定回调函数

import tkinter as tk

def scroll(event):
    scrollbar.set(event.widget.get())

root = tk.Tk()

scrollbar = tk.Scrollbar(root, orient="vertical")
scrollbar.pack(side="right", fill="y")

listbox = tk.Listbox(root, yscrollcommand=scrollbar.set)
for i in range(100):
    listbox.insert("end", "Option " + str(i))

scrollbar.config(command=listbox.yview)
listbox.bind("<MouseWheel>", scroll)

listbox.pack()

root.mainloop()

8、为Canvas组件(画布)绑定回调函数

import tkinter as tk

def draw_line(event):
    canvas.create_line(0, 0, event.x, event.y)

root = tk.Tk()

canvas = tk.Canvas(root, width=300, height=300)
canvas.bind("<Button-1>", draw_line)

canvas.pack()

root.mainloop()

9、为Text组件(文本框)绑定回调函数

import tkinter as tk

def count_characters(event):
    text = event.widget.get("1.0", "end")
    count = len(text.replace("\n", ""))
    print("Character count:", count)

root = tk.Tk()

text = tk.Text(root)
text.bind("<KeyRelease>", count_characters)

text.pack()

root.mainloop()

10、为Menu组件(菜单)绑定回调函数

import tkinter as tk

def say_hello():
    print("Hello World!")

root = tk.Tk()

menubar = tk.Menu(root)

filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="New")
filemenu.add_command(label="Open")
filemenu.add_command(label="Save")

filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)

editmenu = tk.Menu(menubar, tearoff=0)
editmenu.add_command(label="Copy")
editmenu.add_command(label="Cut")
editmenu.add_command(label="Paste")
editmenu.add_command(label="显示问候",command=say_hello)

helpmenu = tk.Menu(menubar, tearoff=0)
helpmenu.add_command(label="About")

menubar.add_cascade(label="File", menu=filemenu)
menubar.add_cascade(label="Edit", menu=editmenu)
menubar.add_cascade(label="Help", menu=helpmenu)

root.config(menu=menubar)

root.mainloop()

11、为Canvas(画布)中的图形对象绑定回调函数

import tkinter as tk

def move_object(event):
    canvas.move(rectangle, 10, 10)

root = tk.Tk()

canvas = tk.Canvas(root, width=300, height=300)
rectangle = canvas.create_rectangle(50, 50, 100, 100, fill="blue")
canvas.tag_bind(rectangle, "<Button-1>", move_object)

canvas.pack()

root.mainloop()

当点击蓝色方块时,蓝色方块会移动

12、为Frame组件绑定回调函数

import tkinter as tk

def say_hello():
    print("Hello World!")

root = tk.Tk()

frame = tk.Frame(root)
button = tk.Button(frame, text="Click me", command=say_hello)
button.pack()
frame.pack()

root.mainloop()

13、为Label组件(标签)绑定回调函数

import tkinter as tk

def say_hello(event):
    label.config(text="Hello World!")

root = tk.Tk()

label = tk.Label(root, text="Click me")
label.pack()
label.bind("<Button-1>", say_hello)

root.mainloop()

14、为Toplevel组件(顶部操作杆)绑定回调函数

import tkinter as tk

def create_window():
    window = tk.Toplevel(root)
    label = tk.Label(window, text="New Window")
    label.pack()

root = tk.Tk()

button = tk.Button(root, text="Create window", command=create_window)
button.pack()

root.mainloop()

15、为Canvas中(画布)的图形对象设置鼠标样式

import tkinter as tk

def set_cursor(event):
    canvas.config(cursor="crosshair")

root = tk.Tk()

canvas = tk.Canvas(root, width=300, height=300)
canvas.bind("<Motion>", set_cursor)

canvas.pack()

root.mainloop()

16、为Entry组件绑定回调函数

import tkinter as tk
#   Python学习交流裙:708525271
def show_input(event):
    print("Input is:", entry.get())

root = tk.Tk()

entry = tk.Entry(root)
entry.bind("<Return>", show_input)

entry.pack()
root.mainloop()

17、为Text组件设置快捷键

import tkinter as tk

def copy(event):
    text.event_generate("<Control-c>")

root = tk.Tk()

text = tk.Text(root)
text.bind("<Control-c>", lambda e: print("Copied!"))

button = tk.Button(root, text="Copy", command=lambda: copy(None))
button.pack()

text.pack()

18、为Canvas中的图形对象添加标签

import tkinter as tk

def show_label(event):
    item = canvas.find_withtag("current")
    canvas.itemconfig(item, tags=("item", "selected"))
    canvas.itemconfig("label", text="Selected item: " + str(item[0]))

root = tk.Tk()

canvas = tk.Canvas(root, width=300, height=300)
rectangle = canvas.create_rectangle(50, 50, 100, 100, fill="blue", tags=("item"))
label = canvas.create_text(150, 20, text="No item selected", tags=("label"))

canvas.bind("<Button-1>", show_label)

canvas.pack()

root.mainloop()

验证程序能够运行,且可以显示在没有选择前、选择后。

19、为Canvas中的图形对象设置动画效果

import tkinter as tk

def animate():
    canvas.move(rectangle, 2, 2)
    canvas.after(10, animate)

root = tk.Tk()

canvas = tk.Canvas(root, width=300, height=300)
rectangle = canvas.create_rectangle(50, 50, 100, 100, fill="blue")

animate()

canvas.pack()

root.mainloop()

经过验证,程序可以运行,蓝色的图形会运动到右下角。

20、为Menu组件设置图片

import tkinter as tk

root = tk.Tk()

menubar = tk.Menu(root)

filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="New", image=tk.PhotoImage(file="D:\\test\\test\\icons\\new.png"))
filemenu.add_command(label="Open", image=tk.PhotoImage(file="D:\\test\\test\\icons\\open.png"))
filemenu.add_command(label="Save", image=tk.PhotoImage(file="D:\\test\\test\\icons\\save.png"))
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)

editmenu = tk.Menu(menubar, tearoff=0)
editmenu.add_command(label="Copy", image=tk.PhotoImage(file="D:\\test\\test\\icons\\copy.png"))
editmenu.add_command(label="Cut", image=tk.PhotoImage(file="D:\\test\\test\\icons\\cut.png"))
editmenu.add_command(label="Paste", image=tk.PhotoImage(file="D:\\test\\test\\icons\\paste.png"))

helpmenu = tk.Menu(menubar, tearoff=0)
helpmenu.add_command(label="About", image=tk.PhotoImage(file="D:\\test\\test\\icons\\about.png"))

menubar.add_cascade(label="File", menu=filemenu)
menubar.add_cascade(label="Edit", menu=editmenu)
menubar.add_cascade(label="Help", menu=helpmenu)

root.config(menu=menubar)

root.mainloop()

程序测试好像不成功,没有找到原因

21、为Canvas中的图形对象设置背景图片

import tkinter as tk

root = tk.Tk()

canvas = tk.Canvas(root, width=300, height=300)
canvas.config(bg="white")

photo = tk.PhotoImage(file="icons/background.png")
canvas.create_image(0, 0, image=photo, anchor="nw")

canvas.pack()

root.mainloop()

22、为Canvas中的图形对象设置鼠标拖动效果

import tkinter as tk

def start_drag(event):
    global drag_pos
    drag_pos = (event.x, event.y)

def drag(event):
    global drag_pos
    delta_x = event.x - drag_pos[0]
    delta_y = event.y - drag_pos[1]
    canvas.move(rectangle, delta_x, delta_y)
    drag_pos = (event.x, event.y)

root = tk.Tk()

canvas = tk.Canvas(root, width=300, height=300)
rectangle = canvas.create_rectangle(50, 50, 100, 100, fill="blue")
canvas.tag_bind(rectangle, "<Button-1>", start_drag)
canvas.tag_bind(rectangle, "<B1-Motion>", drag)

canvas.pack()

root.mainloop()

23、为Canvas中的图形对象设置点击特效

import tkinter as tk

def toggle_color(event):
    canvas.itemconfig(event.widget, fill="green" if event.widget in selected else "blue")
    if event.widget in selected:
        selected.remove(event.widget)
    else:
        selected.append(event.widget)

root = tk.Tk()

canvas = tk.Canvas(root, width=300, height=300)

rectangles = []
selected = []

for i in range(3):
    for j in range(3):
        rectangle = canvas.create_rectangle(i*100, j*100, i*100+50, j*100+50, fill="blue")
        canvas.tag_bind(rectangle, "<Button-1>", toggle_color)
        rectangles.append(rectangle)

canvas.pack()

root.mainloop()

24、为Canvas中的图形对象设置缩放效果

import tkinter as tk

def zoom(delta):
    scale = 1.1 if delta > 0 else 0.9
    canvas.scale("all", 0, 0, scale, scale)

root = tk.Tk()

canvas = tk.Canvas(root, width=300, height=300)
rectangle = canvas.create_rectangle(50, 50, 100, 100, fill="blue")
canvas.bind("<MouseWheel>", lambda e: zoom(e.delta))

canvas.pack()

root.mainloop()

25、为Canvas中的图形对象设置旋转效果

import tkinter as tk
import math

def rotate(delta):
    angle = math.radians(delta)
    rx, ry = canvas.coords(rectangle)[:2]
    cos = math.cos(angle)
    sin = math.sin(angle)
    x, y = canvas.coords(rectangle)[2:4]
    tx = cos * (x-rx) - sin * (y-ry) + rx
    ty = sin * (x-rx) + cos * (y-ry) + ry
    canvas.coords(rectangle, rx, ry, tx, ty)

root = tk.Tk()

canvas = tk.Canvas(root, width=300, height=300)
rectangle = canvas.create_rectangle(50, 50, 100, 100, fill="blue")
canvas.bind("<MouseWheel>", lambda e: rotate(e.delta))

canvas.pack()

root.mainloop()

26、为Canvas中的图形对象设置反色效果

import tkinter as tk

def toggle_color(event):
    pixels = canvas.itemcget(event.widget, "fill")
    if pixels == "blue":
        canvas.itemconfig(event.widget, fill="yellow")
    else:
        canvas.itemconfig(event.widget, fill="blue")

root = tk.Tk()

canvas = tk.Canvas(root, width=300, height=300)

rectangles = []

for i in range(3):
    for j in range(3):
        rectangle = canvas.create_rectangle(i*100, j*100, i*100+50, j*100+50, fill="blue")
        canvas.tag_bind(rectangle, "<Button-1>", toggle_color)
        rectangles.append(rectangle)

canvas.pack()

root.mainloop()

27、为Canvas中的图形对象设置闪烁效果

import tkinter as tk

def start_blink(event):
    canvas.itemconfig(event.widget, fill="yellow")
    canvas.after(200, lambda: canvas.itemconfig(event.widget, fill="blue"))
    canvas.after(400, lambda: canvas.itemconfig(event.widget, fill="yellow"))
    canvas.after(600, lambda: canvas.itemconfig(event.widget, fill="blue"))

root = tk.Tk()

canvas = tk.Canvas(root, width=300, height=300)

rectangles = []

for i in range(3):
    for j in range(3):
        rectangle = canvas.create_rectangle(i*100, j*100, i*100+50, j*100+50, fill="blue")
        canvas.tag_bind(rectangle, "<Button-1>", start_blink)
        rectangles.append(rectangle)

canvas.pack()

root.mainloop()

28、为Menu组件设置子菜单

#    为Menu组件设置子菜单

import tkinter as tk

root = tk.Tk()

menubar = tk.Menu(root)

filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="New")
filemenu.add_command(label="Open")
filemenu.add_command(label="Save")

subfilemenu = tk.Menu(filemenu, tearoff=0)
subfilemenu.add_command(label="Option 1")
subfilemenu.add_command(label="Option 2")

filemenu.add_cascade(label="More", menu=subfilemenu)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)

menubar.add_cascade(label="File", menu=filemenu)

root.config(menu=menubar)

root.mainloop()

29、为Canvas中的图形对象设置尺寸调整效果

#    为Canvas中的图形对象设置尺寸调整效果

import tkinter as tk

def start_resize(event):
    global resize_pos
    resize_pos = (event.x, event.y)

def resize(event):
    global resize_pos
    delta_x = event.x - resize_pos[0]
    delta_y = event.y - resize_pos[1]
    x, y, w, h = canvas.coords(rectangle)
    if event.widget == resize_left:
        canvas.coords(rectangle, x+delta_x, y, w-delta_x, h)
    elif event.widget == resize_top:
        canvas.coords(rectangle, x, y+delta_y, w, h-delta_y)
    elif event.widget == resize_right:
        canvas.coords(rectangle, x, y, w+delta_x, h)
    elif event.widget == resize_bottom:
        canvas.coords(rectangle, x, y, w, h+delta_y)
    resize_pos = (event.x, event.y)

root = tk.Tk()

canvas = tk.Canvas(root, width=300, height=300)
rectangle = canvas.create_rectangle(50, 50, 100, 100, fill="blue")

resize_left = tk.Canvas(canvas, width=10, height=10, bd=-2, bg="white", cursor="sb_h_double_arrow")
resize_top = tk.Canvas(canvas, width=10, height=10, bd=-2, bg="white", cursor="sb_v_double_arrow")
resize_right = tk.Canvas(canvas, width=10, height=10, bd=-2, bg="white", cursor="sb_h_double_arrow")
resize_bottom = tk.Canvas(canvas, width=10, height=10, bd=-2, bg="white", cursor="sb_v_double_arrow")

resize_left.place(x=50-5, y=75-5)
resize_top.place(x=75-5, y=50-5)
resize_right.place(x=100-5, y=75-5)
resize_bottom.place(x=75-5, y=100-5)

resize_left.bind("<Button-1>", start_resize)
resize_top.bind("<Button-1>", start_resize)
resize_right.bind("<Button-1>", start_resize)
resize_bottom.bind("<Button-1>", start_resize)

resize_left.bind("<B1-Motion>", resize)
resize_top.bind("<B1-Motion>", resize)
resize_right.bind("<B1-Motion>", resize)
resize_bottom.bind("<B1-Motion>", resize)

canvas.pack()

root.mainloop()


我给大家准备了25个非常实用的Python爬虫项目,帮助大家更好的学习爬虫。大家也可根据项目的需求,自己构建解决方法,提高编程水平。全套的python自学视频以及项目,已经打包完毕,文末名片可以 直接拿走学习了!


代码整理不易,建议保存。

今天的分享就到这结束了,下次见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/576396.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

模拟量偏差报警功能块(SCL代码)

工业模拟量采集的相关基础知识,可以查看专栏的系列文章,这里不再赘述,常用链接如下: PLC模拟量采集算法数学基础(线性传感器)_plc傳感器數據轉化_RXXW_Dor的博客-CSDN博客模拟量采集库如何设计,具体算法代码请参看我的另一篇博文:PLC模拟量输入 模拟量转换FC:S_ITR_R…

栈和队列(详解)

&#x1f355;博客主页&#xff1a;️自信不孤单 &#x1f36c;文章专栏&#xff1a;数据结构与算法 &#x1f35a;代码仓库&#xff1a;破浪晓梦 &#x1f36d;欢迎关注&#xff1a;欢迎大家点赞收藏关注 文章目录 &#x1f353;栈1. 栈的概念及结构2. 栈的实现2.1 初始化栈2.…

MySQL运维篇(三)

五.读写分离 5.1 介绍 读写分离,简单地说是把对数据库的读和写操作分开,以对应不同的数据库服务器。主数据库提供写操作&#xff0c;从数据库提供读操作&#xff0c;这样能有效地减轻单台数据库的压力。 通过MyCat即可轻易实现上述功能&#xff0c;不仅可以支持MySQL&#x…

【论文总结】Composition Kills: A Case Study of Email Sender Authentication

构成杀伤力&#xff1a; 电子邮件发送者认证的案例研究 摘要 基于组件的软件设计是构建现代软件系统的一种主要工程方法。然而&#xff0c;由于不同组件之间对信息的解释可能不一致&#xff0c;这种编程范式产生了安全问题。在本文中&#xff0c;我们利用这种不一致来识别电子…

双列集合 JAVA

双列集合 一次需要添加一对数据&#xff0c;分别为键和值键不可以重复&#xff0c;值可以重复键和值是一一对应的&#xff0c;每一个键只可以找到自己对应的值键值对在java中也叫做Entry对象 #mermaid-svg-zKLj0vUbRaN9zlse {font-family:"trebuchet ms",verdana,ar…

SpringBoot2-基础入门(二)

SpringBoot2 - 基础入门&#xff08;二&#xff09; 了解自动装配原理 文章目录 SpringBoot2 - 基础入门&#xff08;二&#xff09;了解自动装配原理一、依赖管理1.1 父项目做依赖管理1.2 starer场景启动器 2、自动配置2.1 自动配置依赖2.2 组件扫描 3、配置文件3.1 各种配置…

【软件测试知识】

目录 软件测试软件测试模型瀑布模型V 模型W 模型敏捷开发模型 软件开发流程软件测试方法白盒测试黑盒测试 软件测试 软件测试模型 说到开发模型&#xff0c;从软件发展来看&#xff0c;比较典型的有瀑布模型&#xff0c;V 模型和 W 模型以及 敏捷开发模型。并不是说开发模型的…

【论坛java项目】第二章 Spring Boot实践,开发社区登录模块:发送邮件、开发注册功能、会话管理、生成验证码、开发登录、退出功能、

&#x1f600;如果对你有帮助的话&#x1f60a; &#x1f33a;为博主点个赞吧 &#x1f44d; &#x1f44d;点赞是对博主最大的鼓励&#x1f60b; &#x1f493;爱心发射~&#x1f493; 目录 一、发送邮件1、启用客户端SMTP服务2、导入jar包3、邮箱参数配置MailClientdemo.html…

第13届蓝桥杯Scratch省赛真题集锦

编程题 第 1 题 问答题 报数游戏 题目说明 背景信息: 5个男生和3个女生&#xff0c;8个人围成一个圆圈&#xff0c;给定一个数字n (2 小于等于n 小于等于5)。从第一个开始依次报数&#xff0c;当报数为n时&#xff0c;这个人离开圆圈。然后下一个从1开始报数&#xff0c;再次报…

MySQL---使用索引优化、大批量插入数据优化

1. 使用索引优化 索引是数据库优化最常用也是最重要的手段之一, 通过索引通常可以帮助用户解决大多数的MySQL 的性能优化问题&#xff1a; create table tb_seller (sellerid varchar (100),name varchar (100),nickname varchar (50),password varchar (60),status varchar…

高级Java多线程面试题及回答

高级Java多线程面试题及回答 1)现在有T1、T2、T3三个线程&#xff0c;你怎样保证T2在T1执行完后执行&#xff0c;T3在T2执行完后执行? 这个线程问题通常会在第一轮或电话面试阶段被问到&#xff0c;目的是检测你对”join”方法是否熟悉。这个多线程问题比较简单&#xff0c;可…

网络安全的红利还能吃几年?

在我看来这是一个伪命题&#xff0c;因为网络安全的核心和本质是持续对抗&#xff0c;只要威胁持续存在&#xff0c;网络安全的红利就会持续存在&#xff01; 对于网络安全新入行的同学们来说&#xff0c;这是一个最坏的时代&#xff0c;因为你只能自己搭环境才能重现那些大牛们…

网络编程 lesson5 IO多路复用

select 当需要在一个或多个文件描述符上等待事件发生时&#xff0c;可以使用select函数。 select函数是一个阻塞调用&#xff0c;它会一直等待&#xff0c;直到指定的文件描述符上有事件发生或超时。 select函数详解 int select(int nfds, fd_set *readfds, fd_set *writefd…

初识SPDK,从SPDK的软件架构到使用实操

相信很多做存储的同学都听说过SPDK,它是Intel开发的一套开源存储栈。SPDK的全称为存储高性能开发包(Storage Performance Development Kit),从名称可以看出SPDK其实就是一个第三方的程序库。但是这个程序库却是非常强大的,下图是SPDK的软件模块图,从该图可以看出,几乎囊…

Linux---用户管理命令(useradd、userdel、usermod、passwd、id)

1. 用户与用户组 Linux系统是一个多用户多任务的分时操作系统&#xff0c;任何一个要使用系统资源的用户&#xff0c;都必须首先向 系统管理员申请一个账号&#xff0c;然后以这个账号的身份进入系统。 Linux系统中可以&#xff1a; 配置多个用户、配置多个用户组、用户可以…

什么?电路板上还要喷漆?

什么是三防漆&#xff1f; 三防漆是一种特殊配方的涂料&#xff0c;用于保护线路板及其相关设备免受环境的侵蚀。三防漆具有良好的耐高低温性能&#xff1b;其固化后成一层透明保护膜&#xff0c;具有优越的绝缘、防潮、防漏电、防震、防尘、防腐蚀、防老化、耐电晕等性能。 在…

MIT6824——lab4(实现一个分片kv存储)的一些实现,问题,和思考

Part A 分片控制器 1. 整体思路 和lab3A一样&#xff0c;shardctler也是一个服务&#xff0c;由客户端调用。这个服务建立在raft集群上&#xff0c;保证容错。 shardctler也应该保证线性一致性和重复请求的问题&#xff0c;因此也需要记录clientid和messageid。 shardctler保…

BFT 最前线 | 张一鸣成立个人基金;马斯克:AI是双刃剑;阿里首席安全科学家离职;卡内基梅隆究团队:解决农业虫卵问题的机器人

文 | BFT机器人 名人动态 CELEBRITY NEWS 01 字节跳动创始人张一鸣 在香港成立个人投资基金 在卸任CEO两年后&#xff0c;字节跳动创始人张一鸣在香港成立了一家个人投资基金。香港公司注册处网站显示&#xff0c;该基金名为Cool River Venture&#xff0c;性质是私人股份有限…

doris索引

目前 Doris 主要支持两类索引&#xff1a; - 内建的智能索引&#xff1a;包括前缀索引和 ZoneMap 索引。 - 用户创建的二级索引&#xff1a;包括 Bloom Filter 索引 和 Bitmap倒排索引。其中 ZoneMap 索引是在列存格式上&#xff0c;对每一列自动维护的索引信息&#xff0c;包…

Go 语言实战案例:猜谜游戏在线词典SOCKS5代理服务器 Go学习路线

字节跳动后端入门 - Go 语言原理与实践& vscode配置安装Go 3.1猜谜游戏 3.1.2 生成随机数v2 package mainimport ("fmt""math/rand""time" )func main() {maxNum : 100rand.Seed(time.Now().UnixNano())secretNumber : rand.Intn(maxNum)fmt…