【Tkinter系列26/45】通用小部件方法

说明

        此处讨论小部件方法,凡是可以产生动作的函数均列在此处。包括:定时器、闲暇、绑定、属性配置、布局管理等,属于高级编程的必备知识。了解通用小部件方法,对于客户定制公共类库有极大助益,请务必掌握。

26 通用小部件方法

26.1 定时器

下面在所有小部件上定义了这些方法。在描述中,w可以是任何类型的任何小部件。

w.after(delay_ms, callback=None, *args)

请求Tkinter在延迟至少几毫秒后调用callback带参数的函数 。实际花费的时间没有上限,但是您的回调不会比您请求的时间更早被调用,并且只会被调用一次。 argsdelay_ms

.after_cancel()此方法返回一个“标识符后”的整数,如果您想取消回调, 可以将该整数传递给该方法。

如果不传递callback 参数,此方法将等待delay_ms 几毫秒,就像标准 Python模块.sleep() 的函数一样。 time

w.after_cancel(id)

取消先前设置的回调请求.after()。参数id是原始调用返回的结果 .after()

w.after_idle(func, *args)

请求Tkinter在下次系统空闲时(即下次没有要处理的事件时)调用func带有参数的函数。args回调只会被调用一次。如果您希望再次调用回调,则必须.after_idle再次调用该方法。

w.bell()

发出声音,通常是蜂鸣声。

26.2 绑定

w.bind(sequence=None, func=None, add=None)

此方法用于将事件绑定附加到小部件。有关事件绑定的概述 ,请参阅第 54 节“事件” 。

sequence参数描述了我们期望的事件,并且该 func 参数是当该事件发生在小部件上时要调用的函数。如果该小部件已经有该事件的绑定,通常旧的回调会被替换为func,但您可以通过传递 来保留这两个回调add='+'

w.bind_all(sequence=None, func=None, add=None)

与 类似.bind(),但适用于整个应用程序中的所有小部件。

w.bind_class(classNamesequence=None, func=None, add=None)

与 类似.bind(),但适用于所有名为className(例如 'Button')的小部件。

w.bindtags(tagList=None)

如果调用此方法,它将以字符串序列的形式返回小部件的“绑定标签”。绑定标签是窗口的名称(以 开头'.')或类的名称(例如,'Listbox')。

您可以通过将您希望小部件使用的绑定标记序列作为参数传递来更改调用绑定级别的顺序。

有关绑定级别及其与标签的关系的讨论, 请参阅第 54 节“事件” 。

26.4 属性值的字符串缓存

w.cget(option)

option以字符串形式 返回 的当前值。您还可以获取小部件的选项值,w如。 w[option]

w.clipboard_append(text)

将给定text字符串附加到显示器的剪贴板,其中存储了该显示器的所有应用程序的剪切和粘贴字符串。

w.clipboard_clear()

清除显示器的剪贴板(见.clipboard_append()上文)。

w.column_configure()

请参见第 4.2 节“其他网格管理方法”。

w.config(option=value, ...)

与...一样.configure()

w.configure(option=value, ...)

设置一个或多个选项的值。class对于名称为 Python 保留字 ( , from, )的选项in,请使用尾随下划线: 'class_''from_''in_'

w您还可以使用以下语句 设置小部件的选项值

w[ option] =value

        如果您.config()在不带参数的情况下调用小部件上的方法,您将获得所有小部件当前选项的字典。键是选项名称(包括bdfor等别名borderwidth)。每个键的值是:

  • 采取五元组,对于大多数条目,:(选项名称、选项数据库密钥、选项数据库类、默认值、当前值);或者,

  • 一个二元组,对于别名(例如'fg'),( 别名, 等效标准名称)。

26.5 关于事件

w.destroy()

调用w.destroy()一个小部件 w会销毁w它及其所有子部件。

w.event_add(virtual, *sequences)

此方法创建一个虚拟事件,其名称由字符串参数给出virtual。每个附加参数描述一个 序列,即物理事件的描述。当该事件发生时,将触发新的虚拟事件。

有关虚拟事件的一般描述 , 请参阅第 54 节“事件” 。

w.event_delete(virtual, *sequences)

从名称由字符串指定的虚拟事件中删除物理事件virtual。如果从给定的虚拟事件中删除所有物理事件,则该虚拟事件将不再发生。

w.event_generate(sequence, **kw)

此方法无需任何外部刺激即可触发事件。事件的处理与外部刺激触发的事件相同。参数sequence描述要触发的事件。Event您可以通过提供参数来设置对象中选定字段的值,其中指定对象中字段的名称 。 keyword=valuekeywordEvent

有关事件的完整讨论 , 请参阅第 54 节“事件” 。

w.event_info(virtual=None)

如果您不带参数调用此方法,您将返回所有当前定义的虚拟事件名称的序列。

要检索与虚拟事件关联的物理事件,请将此虚拟事件的名称传递给此方法,您将返回物理名称的序列sequence,或者None如果给定的虚拟事件从未定义过。

26.6  关于焦点

w.focus_displayof()

返回当前在与小部件相同的显示器上具有输入焦点的窗口的名称。如果没有这样的窗口具有输入焦点,则返回None

有关输入焦点的一般描述 , 请参阅第 53 节“焦点:路由键盘输入” 。

w.focus_force()

强制将输入焦点置于小部件上。这是不礼貌的。最好等待窗口管理器为您提供焦点。另请参阅.grab_set_global()下文。

w.focus_get()

返回在此应用程序中具有焦点的小部件(如果有),否则返回None

w.focus_lastfor()

此方法检索在包含 的顶级窗口中最后获得输入焦点的小部件的名称w。如果该顶级小部件都没有获得过输入焦点,则它返回顶级小部件的名称。如果此应用程序没有输入焦点,.focus_lastfor()则将返回下次返回此应用程序时将获得焦点的小部件的名称。

w.focus_set()

如果w的应用程序具有输入焦点,则焦点将跳转到w。如果w的应用程序没有焦点,Tk 会记住将其交给w下一个获得焦点的应用程序。

w.grab_current()

w如果的显示 有效,则返回其标识符,否则返回None。有关抢夺的讨论 ,请参阅第 54 节“事件” 。

w.grab_release()

如果w有有效的抓握,请将其释放。

w.grab_set()

小部件抓取的应用程序w的所有事件。w如果有另一次强力的抓握,它就会消失。有关抢夺的讨论 ,请参阅第 54 节“事件” 。

w.grab_set_global()

小部件w抓取整个屏幕的所有事件。这被认为是不礼貌的,只有在非常需要的时候才应该使用。任何其他有效的抓取都会消失。尝试只将这种可怕的力量用于正义的力量,而不是邪恶的力量,好吗?

w.grab_status()

如果存在有效的本地抓取(由 设定.grab_set()),则此方法返回字符串 'local'。如果存在有效的全局抓取(来自.grab_set_global()),则返回'global'。如果没有强制抓取,则返回None

26.4 停靠位置

w.grid_forget()

请参见第 4.2 节“其他网格管理方法”。

w.grid_propagate()

请参见第 4.2 节“其他网格管理方法”。

w.grid_remove()

请参见第 4.2 节“其他网格管理方法”。

w.image_names()

w以字符串序列的形式 返回 的应用程序中所有图像的名称。

w.keys()

以字符串序列的形式返回小部件的选项名称。

w.lift(aboveThis=None)

如果参数为None,则包含的窗口w将移动到窗口堆叠顺序的顶部。要将窗口移动到某个 Toplevelwindow 的上方w,请w作为参数传递。

w.lower(belowThis=None)

如果参数为None,则包含的窗口w将移动到窗口堆叠顺序的底部。要将窗口移动到某个 Toplevelwindow 的正下方w,请w作为参数传递。

w.mainloop()

通常必须在创建所有静态小部件之后调用此方法才能开始处理事件。您可以使用方法(如下)离开主循环.quit()。您还可以在事件处理程序中调用此方法来恢复主循环。

w.nametowidget(name)

此方法返回路径名为 的实际小部件name。请参见第 5.11 节“窗口名称”。如果name未知,此方法将引发KeyError

26.5 窗口参数选项

w.option_add(patternvaluepriority=None)

此方法将默认选项值添加到Tkinter 选项数据库。是pattern一个字符串,指定value一个或多个小部件的选项的默认值。这些priority值为以下之一:

20对于小部件的全局默认属性。
40对于特定应用程序的默认属性。
60对于来自用户文件(例如他们的.Xdefaults文件)的选项。
80对于应用程序启动后设置的选项。这是默认优先级。

较高级别的优先级优先于较低级别的优先级。有关选项数据库的概述,请参见第 27 节“外观标准化” 。pattern参数的语法与 资源规范行的部分 .option_add()相同 。option-pattern

例如,要获得此资源规范行的效果:

*Button*font: times 24 bold

您的应用程序(self在本例中)可能包含以下几行:

    self.bigFont = tkFont.Font(family='times', size=24,weight='bold')self.option_add('*Button*font', self.bigFont)

执行这些行后创建的任何Button小部件都将默认为粗体 Times 24 字体(除非被构造函数font 的选项覆盖Button)。

w.option_clear()

此方法从Tkinter选项数据库 中删除所有选项 。这具有返回到所有默认值的效果。

w.option_get(nameclassname)

使用此方法从Tkinter选项数据库 检索选项的当前值。第一个参数是实例键,第二个参数是类键。如果有任何匹配项,它将返回最匹配的选项的值。如果没有匹配项,则返回''

有关按键如何与选项匹配的更多信息 , 请参阅第 27 节“标准化外观” 。

w.option_readfile(fileNamepriority=None)

为了方便用户配置,您可以指定一个命名文件,用户可以在其中放置自己的首选选项,并使用与该 .Xdefaults文件相同的格式。然后,当您的应用程序初始化时,您可以将该文件的名称传递给此方法,并且该文件中的选项将被添加到数据库中。如果文件不存在,或其格式无效,此方法将引发tk.TclError.

有关选项数据库和选项文件格式的介绍 , 请参阅第 27 节“标准化外观” 。

w.register(function)

此方法围绕 Python 创建 Tcl 包装器 function,并以字符串形式返回 Tcl 包装器名称。有关此方法的使用示例,请参阅第 10.2 节“向Entry 小部件添加验证”。

w.quit()

该方法退出主循环。.mainloop()有关主循环的讨论, 请参见上面的内容。

w.rowconfigure()

请参见第 4.2 节“其他网格管理方法”。

w.selection_clear()

如果w当前有一个选择(例如条目小部件中突出显示的文本段),请清除该选择。

w.selection_get()

如果w当前有一个选择,此方法将返回选定的文本。如果没有选择,则会引发tk.TclError

w.selection_own()

使的显示w中的选择成为所有者w,从之前的所有者(如果有)那里窃取它。

w.selection_own_get()

w返回当前拥有显示 中的选择的小部件 。tk.TclError如果没有这样的选择,则 引发。

w.tk_focusFollowsMouse()

通常,输入焦点在一系列小部件之间循环,这些小部件由它们的层次结构和创建顺序确定;请参见第 53 节“焦点:路由键盘输入”。相反,您可以告诉Tkinter将焦点强制置于鼠标所在的位置;只需调用这个方法即可。然而,没有简单的方法可以撤销它。

w.tk_focusNext()

w返回焦点遍历序列中 紧随其后的小部件。有关焦点遍历的讨论 ,请参阅第 53 节“焦点:路由键盘输入” 。

w.tk_focusPrev()

w返回焦点遍历序列中 位于前面的小部件。

w.unbind(sequencefuncid=None)

w此方法删除所描述的事件的 绑定sequence。如果第二个参数是绑定到该序列的回调,则该回调将被删除,其余部分(如果有)保留在原处。如果省略第二个参数,则删除所有绑定。

有关事件绑定的一般讨论, 请参阅下面第 54 节“事件” 。

w.unbind_all(sequence)

删除整个应用程序中给定 描述的事件的所有事件绑定sequence

w.unbind_class(classNamesequence)

与 类似.unbind(),但适用于所有名为className(例如, 'Entry''Listbox')的小部件。

w.update()

此方法强制更新显示。仅当您知道自己在做什么时才应使用它,因为它可能会导致不可预测的行为或循环。永远不应该从事件回调或从事件回调调用的函数中调用它。

w.update_idletasks()

更新显示中的一些任务(例如调整大小和重绘小部件)称为空闲任务,因为它们通常被推迟到应用程序完成处理事件并返回主循环以等待新事件为止。

如果您想在应用程序下一次空闲之前强制更新显示,请w.update_idletasks()在任何小部件上调用该方法。

w.wait_variable(v)

等待直到变量的值v被设置,即使该值没有改变。此方法进入本地等待循环,因此它不会阻塞应用程序的其余部分。

w.wait_visibility(w)

等待小部件w(通常为Toplevel)可见。

w.wait_window(w)

等到窗口w被破坏。

w.winfo_children()

返回所有子级的列表w,按照从最低(底部)到最高(顶部)的堆叠顺序。

w.winfo_class()

返回w的类名(例如,'Button')。

w.winfo_containing(rootXrootYdisplayof=0)

该方法用于查找包含点( rootXrootY) 的窗口。如果该displayof选项为 false,则坐标相对于应用程序的根窗口;如果为 true,则坐标被视为相对于包含 的顶级窗口w。如果指定点位于应用程序的顶级窗口之一,则此方法返回该窗口;否则返回None

w.winfo_depth()

w返回的显示 中每个像素的位数。

w.winfo_fpixels(number)

对于任何尺寸number(请参阅第 5.1 节“尺寸”),此方法返回 显示器上的距离(以像素为单位)w,作为 类型的数字float

w.winfo_geometry()

返回描述 的大小和屏幕位置的几何字符串w。请参见第 5.10 节“几何字符串”。

警告

在应用程序更新其空闲任务之前,几何图形并不准确。特别是,所有几何图形最初都是 '1x1+0+0'直到小部件和几何管理器协商好它们的大小和位置为止。请参阅 .update_idletasks()本节中上面的方法,了解如何确保小部件的几何形状是最新的。

w.winfo_height()

返回当前高度(以w像素为单位)。请参阅上面关于几何更新的备注.winfo_geometry()。您可能更喜欢使用.winfo_reqheight()如下所述,它始终是最新的。

w.winfo_id()

w 返回一个在其顶级窗口内 唯一标识的整数。您将需要.winfo_pathname()在下面的方法中使用它。

w.winfo_ismapped()

w如果已映射, 此方法返回 true ,否则返回 false。如果一个小部件已经被网格化(或者放置或打包,如果您正在使用其他几何管理器之一)到其父级,并且如果其父级被映射,等等直到顶级窗口,则该小部件被映射。

w.winfo_manager()

如果w尚未网格化(或通过其他几何管理器之一放置),则此方法返回一个空字符串。如果w已进行网格化或以其他方式放置,它将返回一个命名几何管理器的字符串w:该值将为'grid''pack''place''canvas'或之一'text'

w.winfo_name()

此方法返回w相对于其父级的名称。请参见第 5.11 节“窗口名称”。另请参阅.winfo_pathname()下面的 ,了解如何获取小部件的路径名。

w.winfo_parent()

返回的父窗口的路径名,如果是顶级窗口,w则返回空字符串。w有关小部件路径名称的更多信息,请参阅上面 第 5.11 节“窗口名称” 。

w.winfo_pathname(iddisplayof=0)

如果参数为 false,则返回应用程序主窗口中displayof 具有唯一标识符的小部件的窗口路径名称。id如果displayof为 true,则该id数字指定与 位于同一顶级窗口中的小部件w。 有关小部件路径名称的讨论 ,请参见第 5.11 节“窗口名称” 。

w.winfo_pixels(number)

对于任何尺寸(请参阅上面的尺寸),此方法以整数形式返回显示屏 number上的距离(以像素为单位)。w

w.winfo_pointerx()

x返回与返回的坐标 相同的值.winfo_pointerxy()

w.winfo_pointerxy()

返回一个元组,其中包含鼠标指针相对于的根窗口的坐标。如果鼠标指针不在同一屏幕上,则返回。 (xy)w(-1, -1)

w.winfo_pointery()

y返回与返回的坐标 相同的值.winfo_pointerxy()

w.winfo_reqheight()

这些方法返回请求的 widget 高度 w。这是必要的最小高度,以便所有w内容都有所需的空间。由于与几何经理协商,实际高度可能会有所不同。

w.winfo_reqwidth()

返回请求的 widget 宽度w,即包含所需的最小宽度w。与 一样 .winfo_reqheight(),由于与几何管理器的协商,实际宽度可能会有所不同。

w.winfo_rgb(color)

对于任何给定的颜色,此方法返回等效的红-绿-蓝颜色规范作为 3 元组,其中每个数字都是 [0, 65536) 范围内的整数。例如,如果is ,则此方法返回 3-tuple 。 (rgb)color'green'(0, 65535, 0)

有关指定颜色的更多信息,请参阅第 5.3 节“颜色”。

w.winfo_rootx()

返回的根窗口x左侧相对于的父窗口的坐标。 ww

如果w有边框,则这是边框的外边缘。

w.winfo_rooty()

返回的根窗口y顶边相对于的父窗口的坐标。 ww

如果w有边框,则这是边框的上边缘。

w.winfo_screenheight()

返回屏幕的高度(以像素为单位)。

w.winfo_screenmmheight()

返回屏幕的高度(以毫米为单位)。

w.winfo_screenmmwidth()

返回屏幕的宽度(以毫米为单位)。

w.winfo_screenvisual()

返回描述显示器色彩再现方法的字符串。这通常'truecolor'适用于 16 位或 24 位显示器、 'pseudocolor'256 色显示器。

w.winfo_screenwidth()

返回屏幕的宽度(以像素为单位)。

w.winfo_toplevel()

返回包含 的顶级窗口w。该窗口支持小部件上的所有方法Toplevel;请参见第 25 节,“ Toplevel:顶级窗口方法”。

w.winfo_viewable()

如果谓词可见,即如果它及其所有祖先都被映射, 则返回一个True值。wToplevel

w.winfo_width()

返回当前宽度(以w像素为单位)。请参阅上面关于几何更新的备注.winfo_geometry()。您可能更喜欢使用.winfo_reqwidth()上述方法;它始终是最新的。

w.winfo_x()

返回相对于其父级x的左侧坐标。w如果w有边框,则这是边框的外边缘。

w.winfo_y()

返回相对于其父级y的顶边的坐标。w如果w有边框,则这是边框的外边缘。

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

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

相关文章

系列二十五、Spring设计模式之适配器模式

一、适配器模式 1.1、概述 适配器模式(Adapter Pattern)用于兼容不相关的接口之间,类似于一个桥梁,它结合了两个独立接口的功能,这种类型的设计属于结构型模式,为了方便大家伙的理解,我举个例子…

什么是美颜sdk?集成第三方美颜sdk的步骤

本文将深入探讨如何集成第三方美颜sdk,为直播平台引入更先进、更具吸引力的美颜特效。 第一步:选择合适的第三方美颜sdk 在开始集成美颜sdk之前,首要任务是选择适合自己直播平台需求的第三方美颜sdk。不同的sdk可能具有不同的特色和性能&a…

如何修改.exe文件的修改时间,亲测有效

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 演示视频: 10秒钟实现将文件的修改…

Linux:可视化管理工具Webmin的安装

一、下载 地址:Webmin官网 我这里下载的是1.700-1版本 二、安装 1、在虚拟机上新建目录并安装软件 mkdir /opt/webmin rpm -ivh webmin-1.700-1.noarch.rpm2、修改webmin的root密码 /usr/libexec/webmin/changepass.pl /etc/webmin root 1234563、修改端口(可…

掌握JavaScript中的解构赋值:深入挖掘隐藏的技巧

掌握JavaScript中的解构赋值:深入挖掘隐藏的技巧 前言基础概念为什么解构赋值如此重要?数组解构的基本语法:对象解构的基本语法:默认值: 解构赋值的妙用从对象和数组中提取值:从数组中提取值:从…

docker读取字体异常

解决方法 docker容器中执行 apk add ttf-freefont 根据版本不同 apk add ttf-dejavu-fonts apk add ttf-bernoulli

【开源】基于Vue.js的医院门诊预约挂号系统的设计和实现

项目编号: S 033 ,文末获取源码。 \color{red}{项目编号:S033,文末获取源码。} 项目编号:S033,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 功能性需求2.1.1 数据中心模块2.1.2…

第十五章 Linux

Python基础、函数、模块、面向对象、网络和并发编程、数据库和缓存、 前端、django、Flask、tornado、api、git、爬虫、算法和数据结构、Linux、设计题、客观题、其他 第十五章 Linux 1. 下面的linux命令中, 那个不能显示出文件的内容 A. tacB. moreC. headD. man在下面的…

Ranger安装和使用

Ranger部署 1.准备 1.1 编译 Ranger编译(已经编译过的话,直接看1.2) 1.1.1 准备到Ranger官网下载ranger的源码:http://ranger.apache.org/download.html 1.1.2 Ranger编译的过程实在非虚拟机环境下完成的,下载好r…

chapter10-homework-Java

第十章作业 Homework01知识点 Homework02知识点 Homework03知识点 Homework04知识点 Homework05知识点 Homework06Homework07Homework08 Homework01 分析执行结果。 public static void main(String[] args) {Car_ c new Car_();Car_ c1 new Car_(100);System.out.println(…

Vue中 实现自定义指令(directive)及应用场景

一、Vue2 1. 指令钩子函数 一个指令定义对象可以提供如下几个钩子函数 (均为可选): bind 只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。inserted 被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已…

三.排序与分页

目录 一.排序数据二.分页 一.排序数据 1.排序规则 使用ORDER BY 子句排序 ASC(ascend)升序DESC(descend)降序 ORDER BY 子句在SELECT语句的结尾 2.单列排序 SELECT last_name, job_id, department_id, hire_date FROM e…

(蓝桥杯)1125 第 4 场算法双周赛题解+AC代码(c++/java)

题目一&#xff1a;验题人的生日【算法赛】 验题人的生日【算法赛】 - 蓝桥云课 (lanqiao.cn) 思路&#xff1a; 1.又是偶数&#xff0c;又是质数&#xff0c;那么只有2喽 AC_Code:C #include <iostream> using namespace std; int main() {cout<<2;return 0; …

windows系统bat脚本命令总结之复制命令(copy和xcopy)

前言 做了一段时间的bat脚本开发&#xff0c;bat脚本中有各种各样的命令跟传统的编程逻辑完全不同&#xff0c;本专栏会讲解下各种各式的命令使用方法。 本篇文章讲解的是获取windows系统的复制命令&#xff08;copy和xcopy&#xff09;&#xff0c;copy和xcopy是Windows命令行…

【Web端CAD/CAE文字标注】webgl+canvas 2d实现文字标注功能

一、需求背景 在CAD/CAE领域经常会遇到显示节点编号这种需求&#xff0c;效果如下图&#xff1a; 本文介绍如何在WebGL中实现文字的显示&#xff0c;对于如何在OpenGL中实现请绕路。 二、实现原理 Canvas是HTML5提供的元素&#xff0c;用于在网页上绘制图形&#xff0c;其支…

设计循环队列

目录 设计循环队列 &#x1f642;【1】数组循环队列 思路分析 ❓1 ❓2 ❓3 易错总结 创建MyCircularQueue 初始化myCircularQueueCreate 为空否myCircularQueueIsEmpty 为满否myCircularQueueIsFull 插入元素myCircularQueueEnQueue 删除元素myCircularQueueDeQue…

load_policy命令详解与实例

1. 概述 load_policy是一个与systemd相关的命令,用于加载SELinux(Security-Enhanced Linux)策略。load_policy命令通常与SELinux策略文件(通常是以.pp或.te为扩展名的文件)一起使用,用于加载新的或更新的SELinux策略。 在加载新的SELinux策略后,新的访问控制规则将生效…

无醇啤酒行业分析:预计2028年将达到106亿美元

按照国际惯用的标准划分&#xff0c;通常将酒精度3.5%-4%的称为普通啤酒&#xff0c;将酒精度大于0.5%、小于2.5%的称为低醇啤酒&#xff0c;而酒精度小于0.5%便称为无醇啤酒。酒精给人带来的兴奋感&#xff0c;与体育比赛的紧张刺激相辅相成&#xff0c;啤酒也成为了许多球迷们…

基于UDP的网络聊天室

客户端 #include <myhead.h> //定义存储信息结构体 typedef struct _MSG {char code; //操作码&#xff1a;L表示登录C表示群聊S表示系统消息S表示退出char name[128]; char txt[256];}msg_t;//定义保存客户端网络信息的链表 typedef struct _ADDR {struct sockaddr_i…

第十四章 算法和数据结构

Python基础、函数、模块、面向对象、网络和并发编程、数据库和缓存、 前端、django、Flask、tornado、api、git、爬虫、算法和数据结构、Linux、设计题、客观题、其他 第十四章 算法和数据结构 1. 顺序表、链表的区别及应用场景。 顺序表&#xff08;Sequential List&#xf…