【Tkinter系列05/15】小部件(框架标签和列表)

续接上文:【Tkinter系列04/15】界面小部件(选择钮、行编辑器) 

11. 小部件Frame

框架基本上只是其他小部件的容器。

  • 应用程序的根窗口基本上是一个框架。

  • 每个框架都有自己的网格布局,因此每个框架中小部件的网格化 框架独立工作。

  • 框架小部件是使您的 应用模块化。您可以对一组相关的 通过将小部件放入复合小部件中,将它们放入 框架。更好的是,您可以声明一个新类 继承自 ,添加自己的 接口。这是隐藏 一组相关交互的详细信息 来自外界的小部件。Frame

在根窗口或框架中创建新的框架构件 叫:parent

   w = Frame(parent, option, ...)

构造函数返回新小部件。选项:Frame

表 19.框架构件选项

bgbackground框架的背景色。请参见第 5.3 节 “颜色”。
bdborderwidth框架边框的宽度。默认值为 0(否) 边框)。有关允许的值,请参见第 5.1 节 “尺寸”。
cursor鼠标在框架内时使用的光标 控件;请参见第 5.8 节 “游标”。
height新垂直尺寸 框架。除非您也调用框架,否则这将被忽略;请参见第 4.2 节 “其他网格管理方法”。.grid_propagate(0)
highlightbackground焦点的颜色 当帧没有焦点时加亮显示。请参见第 53 节 “焦点:路由键盘输入”。
highlightcolor颜色显示在 焦点加亮 当帧具有焦点时。
highlightthickness焦点突出显示的厚度。
padx通常,A 紧贴 围绕其内容。添加水平像素 框架内的空间,设置 .FrameNpadx=N
pady用于在框架内添加垂直空间。 见上文。padx
relief帧的默认浮雕是 ,这意味着帧将与其混合 环境。要在框架周围放置边框,请设置 其为正值 并将其浮雕设置为标准浮雕之一 类型;请参见第 5.6 节 “浮雕样式”。tk.FLATborderwidth
takefocus通常,输入不会访问框架小部件 焦点(有关概述,请参见第 53 节 “焦点:路由键盘输入” 的本主题)。但是,您可以设置是否希望框架 接收键盘输入。要处理此类输入,您需要 需要为键盘事件创建绑定; 有关事件的更多信息,请参见第 54 节 “事件”和 绑定。takefocus=1
width新框架的水平尺寸。请参见第 5.1 节 “尺寸”。此值为 忽略,除非您也调用框架;请参见第 4.2 节 “其他网格管理方法”。.grid_propagate(0)

12. 小部件Label

标签微件可以在 相同的样式,或者位图或图像。创建标注微件 在根窗口或框架中:parent

    w = tk.Label(parent, option, ...)

构造函数返回新小部件。选项包括:Label

表 20.标签微件选项

activebackground背景颜色为 当鼠标悬停在小部件上时显示。
activeforeground前景色为 当鼠标悬停在小部件上时显示。
anchor此选项控制文本的位置 如果小部件的空间大于文本需要的空间。 缺省值为 ,这 使文本在可用空间中居中。对于其他 值,请参见第 5.5 节 “锚点”。为 例如,如果使用 , 文本将位于左上角 可用空间的一角。anchor=tk.CENTERanchor=tk.NW
bgbackground标签区域的背景色。请参见第 5.3 节 “颜色”。
bitmap将此选项设置为等于位图或图像对象 标签将显示该图形。请参见第 5.7 节 “位图”和第 5.9 节 “图像”。
bdborderwidth标签周围边框的宽度;请参见第 5.1 节 “尺寸”。默认值为 <> 像素。
compound如果你想要这个小部件 同时显示文本和图形(位图) 或图像),选项 指定图形的相对方向 相对于文本。值可以是 、 、 或 中的任何一个。例如,如果指定 ,则图形将是 显示在文本下方。Labelcompoundtk.LEFTtk.RIGHTtk.CENTERtk.BOTTOMtk.TOPcompound=BOTTOM
cursor鼠标悬停在此位置上时出现的光标 标签。请参见第 5.8 节 “游标”。
disabledforeground当小部件为 时要显示的前景色。statetk.DISABLED
font如果要在此标签中显示文本(使用 or 选项,该选项指定 该文本将显示什么字体。请参见第 5.4 节 “键入字体”。texttextvariablefont
fgforeground如果要在此显示文本或位图 标签,此选项指定文本的颜色。 如果要显示位图,则颜色如下 这将出现在 1 位的位置 位图。请参见第 5.3 节 “颜色”。
height标签的高度(以为单位)(不是像素!如果未设置此选项,则 标签的大小将适合其内容。
highlightbackground焦点的颜色 当小组件没有焦点时突出显示。
highlightcolor颜色 当小组件具有焦点时,焦点突出显示。
highlightthickness焦点突出显示的厚度。
image要在标签微件中显示静态图像,请将 图像对象的此选项。请参见第 5.9 节 “图像”。
justify指定文本的多行方式 彼此对齐:左对齐、居中对齐(默认值)或右对齐。tk.LEFTtk.CENTERtk.RIGHT
padx在文本的左侧和右侧添加了额外的空格 在小部件中。默认值为 1。
pady在文本的上方和下方添加了额外的空格 小部件。默认值为 1。
relief指定装饰性边框的外观 标签周围。默认值为 ;有关其他值,请参见第 5.6 节 “浮雕样式”。tk.FLAT
state默认情况下,小部件位于 状态。设置此选项 以使其无响应 到鼠标事件。状态将为鼠标悬停在小部件上的时间。Entrytk.NORMALtk.DISABLEDtk.ACTIVE
takefocus通常,焦点不会在小部件之间循环;请参见第 53 节 “焦点:路由键盘输入”。如果您希望此小部件 由焦点访问,设置.Labeltakefocus=1
text在标签中显示一行或多行文本 小组件,将此选项设置为包含 发短信。内部换行符 () 将 强制换行。'\n'
textvariable将标签构件中显示的文本从属到 类的控制变量 , 将此选项设置为该变量。请参见第 52 节 “控制变量:小部件背后的值”。StringVar
underline您可以显示下划线 () 在第 n个字母下方 文本,从 0 开始计数,通过设置此选项 到 n。默认值为 ,表示否 强调。_underline=-1
width标签的宽度(以字符为单位)(不是像素!如果 未设置此选项,标签的大小将调整为 适合其内容。
wraplength您可以限制每行中的字符数 通过将此选项设置为所需的数字。这 默认值 0 表示线条将被断开 仅在换行符处。

13. 小部件LabelFrame

该小部件与“框架”小部件一样,是一个 空间容器 - 可以 包含其他小部件。但是,与小部件不同,小部件 允许您将标签显示为周围边框的一部分 该地区。LabelFrameFrameLabelFrame

下面是一个小部件的示例 包含两个小部件。请注意, 标签“重要控件”中断了 边境。此小部件说明了默认的浮雕(请参见第 5.6 节 “浮雕样式”)和 默认标签锚点,其 将标签放置在顶部的左侧 框架。LabelFrameButtonGROOVE'nw'

在 根窗口或框架 :LabelFrameparent

    w = tk.LabelFrame(parent, option, ...)

此构造函数返回新小部件。选项:LabelFrame

表 21.标签框架构件选项

bgbackground要在内部显示的背景色 控件;请参见第 5.3 节 “颜色”。
bdborderwidth围绕 的周长绘制的边框宽度 小部件;请参见第 5.1 节 “尺寸”。这 默认值为两个像素。
cursor选择鼠标 在小部件上;请参见第 5.8 节 “游标”。
fgforeground要使用的颜色 作为标签文本。
height新框架的垂直尺寸。这将是 忽略,除非您也调用框架;请参见第 4.2 节 “其他网格管理方法”。.grid_propagate(0)
highlightbackground焦点的颜色 当小组件没有焦点时突出显示。
highlightcolor颜色 当小组件具有焦点时,焦点突出显示。
highlightthickness焦点突出显示的厚度。
labelanchor

使用此选项可指定 小组件边框上的标注。默认 位置为 ,它放置 上边框左端的标签。对于 九个可能的标签位置,参考这个 图:'nw'

labelwidget您可以使用任何小部件代替文本标签 通过传递该小部件作为值来传递标签 此选项。如果同时提供 和 选项,则会忽略该选项。labelwidgettexttext
padx使用此选项可在内部添加其他填充 微件框架的左侧和右侧。 该值以像素为单位。
pady使用此选项可在内部添加其他填充 小部件框架的顶部和底部。这 值以像素为单位。
relief此选项控制边框的外观 在小部件的外部周围。默认 风格是 ;对于其他值, 请参见第 5.6 节 “浮雕样式”。tk.GROOVE
takefocus通常,小部件不会获得焦点;供应 要使此选项的值 焦点遍历序列的小组件部分。 有关更多信息,请参见第 53 节 “焦点:路由键盘输入”。True
text标签的文本。
width新框架的水平尺寸。这将是 忽略,除非您也调用框架;请参见第 4.2 节 “其他网格管理方法”。.grid_propagate(0)

标签小部件没有特殊方法,除了 常见的(参见第 26 节 “通用小部件方法”)。

14. 小部件Listbox

14. 列表框小部件 (anzeljg.github.io)

列表框小部件的用途是显示一组 文本行。通常,它们旨在允许 用户从列表中选择一个或多个项目。所有 文本行使用相同的字体。如果你需要什么 更像是一个文本编辑器,请参见第 24 节 “文本小部件”。

在根窗口中创建新的列表框小组件,或 框架:parent

    w = tk.Listbox(parent, option, ...)

此构造函数返回新小部件。选项:Listbox

表 22.列表框小组件选项

activestyle

此选项指定 活动线。它可能具有以下任何值:

'underline'

活动线带有下划线。这是 默认选项。

'dotbox'

活动线括在虚线中 四面线。

'none'

活动线没有特殊 外观。

bgbackground列表框中的背景色。
bdborderwidth列表框周围的边框宽度。 默认值为 5 像素。有关可能的值,请参见第 1.<> 节 “维度”。
cursor鼠标悬停在 列表框。请参见第 5.8 节 “游标”。
disabledforeground文本的颜色 在列表框中,当其为 .statetk.DISABLED
exportselection默认情况下,用户可以选择带有 鼠标,所选文本将导出到 剪贴板。要禁用此行为,请使用 。exportselection=0
font用于列表框中文本的字体。请参见第 5.4 节 “键入字体”。
fgforeground用于列表框中文本的颜色。请参见第 5.3 节 “颜色”。
height数(不是像素! 显示在列表框中。默认值为 10。
highlightbackground当小部件执行时,焦点的颜色会突出显示 没有焦点。请参见第 53 节 “焦点:路由键盘输入”。
highlightcolor小部件时焦点突出显示中显示的颜色 有重点。
highlightthickness焦点突出显示的厚度。
listvariable

连接到的 A 列表框中值的完整列表(请参见第 52 节 “控制变量:小部件后面的值”。StringVar

如果调用的方法 的,你会得到 返回窗体的字符串,其中每个字符串都是列表框的一行的内容。.get()listvariable"('v0', 'v1', ...)"vi

更改列表框中的整行集 立即调用 ,其中 是包含 行值之间有空格。.set(s)listvariables

例如,如果 是与列表框的选项关联的,则此调用 将列表框设置为包含三行:listConStringVarlistvariable

 listCon.set('ant bee cicada')

此调用将返回字符串:"('ant', 'bee', 'cicada')"

listCon.get()

relief选择三维边框底纹效果。 缺省值为 。对于其他 值,请参见第 5.6 节 “浮雕样式”。tk.SUNKEN
selectbackground用于显示所选文本的背景色。
selectborderwidth要在选定边框周围使用的边框宽度 发短信。默认值为所选项目为 以纯色块显示;如果增加 ,则条目为 移得更远,所选条目将显示浮雕(请参见第 5.6 节 “浮雕样式”)。selectbackgroundselectborderwidthtk.RAISED
selectforeground用于显示所选文本的前景色。
selectmode确定可以选择多少项以及如何选择 鼠标拖动会影响选择:
  • tk.BROWSE:通常,您只能 从列表框中选择一行。如果你 单击某个项目,然后拖动到其他项目 行,选择将遵循 鼠。这是默认值。

  • tk.SINGLE:您只能选择 一行,你不能拖动 鼠标 - 单击按钮 1 的任意位置, 该行处于选中状态。

  • tk.MULTIPLE:您可以选择任何 一次行数。点击任何 切换是否选择线条。

  • tk.EXTENDED:您可以选择任何 通过单击 在第一行并拖动到最后一行 线。

state默认情况下,列表框处于该状态。使列表框对鼠标无响应 事件中,将此选项设置为 。tk.NORMALtk.DISABLED
takefocus通常,焦点将通过列表框跳动 部件。将此选项设置为 0 以获取微件 不在序列中。请参见第 53 节 “焦点:路由键盘输入”。
width小部件的宽度(以字符为单位)(不是像素!这 宽度基于平均字符,因此一些 按比例字体表示的此长度的字符串可以 不合适。默认值为 20。
xscrollcommand如果要允许用户滚动列表框 水平方向,可以将列表框小部件链接到 水平滚动条。将此选项设置为滚动条的方法。请参见第 14.1 节 “滚动列表框小部件”以获取更多信息 可滚动的列表框小组件。.set
yscrollcommand如果要允许用户滚动列表框 垂直方向,可以将列表框小部件链接到 垂直滚动条。将此选项设置为滚动条的方法。请参见第 14.1 节 “滚动列表框小部件”。.set

一组特殊的索引表单用于许多 列表框对象上的方法:

  • 如果将索引指定为整数,则它引用 列表框中具有该索引的行,从 0 开始计数。

  • 索引是指 列表框。tk.END

  • 索引是指选定的 线。如果列表框允许多项选择,则 指上次选择的行。tk.ACTIVE

  • 表单的索引字符串引用最接近的行 坐标 (,) 相对 到小部件的左上角。'@x,y'xy

对象上的方法包括:Listbox

.activate(index)

选择由给定 指定的行。index

.bbox(index)

返回由 as 指定的行的边界框 一个 4 元组,其中左上角 框的像素位于 和 和 是 以像素为单位。返回的值仅包括 文本占用的行的一部分。index(xoffsetyoffsetwidthheight)(xoffsetyoffset)widthheightwidth

如果参数指定的行不是 可见,此方法返回 .如果 它部分可见,返回的边界框 可能延伸到可见区域之外。indexNone

.curselection()

返回一个元组,其中包含 选定的一个或多个元素,从 0 开始计数。如果 未选择任何内容,返回一个空元组。

.delete(firstlast=None)

删除其索引在范围内的行 [, ],包含(与通常的 Python 习语相反,其中删除 在最后一个索引附近停止),从 0 开始计数。如果 省略第二个参数,单行 索引将被删除。firstlastfirst

.get(firstlast=None)

返回一个元组,其中包含以下行的文本 索引从 到 ,包括 。 如果省略第二个参数,则返回文本 最接近 的行。firstlastfirst

.index(i)

如果可能,定位 列表框,以便包含索引的行位于顶部 的小部件。i

.insert(index, *elements)

在列表框中插入一个或多个新行之前 由 指定的行。如果要添加,请使用第一个参数 列表框末尾的新行。indextk.END

.itemcget(indexoption)

检索特定选项值之一 列表框中的行。有关选项值,请参见下文。如果给定的选项有 未为给定行设置,返回值 将是一个空字符串。itemconfig

.itemconfig(indexoption=value, ...)

更改指定行的配置选项 由。 选项名称包括:index

background

给定行的背景色。

foreground

的文本颜色 给定的行。

selectbackground

给定行的背景色 当它被选中时。

selectforeground

给定行的文本颜色 当它被选中时。

.nearest(y)

返回最接近 y 坐标 y 相对于 列表框小组件。

.scan_dragto(xy)

见下文。scan_mark

.scan_mark(xy)

使用此方法实现快速扫描 稳定滚动 - 列表框。要得到这个 功能,将某些鼠标按钮事件绑定到处理程序 与电流一起调用 鼠标位置。然后将事件绑定到使用当前鼠标调用的处理程序 位置,列表框将以一定速率滚动 与位置之间的距离成正比 记录者和电流 位置。scan_mark<Motion>scan_dragtoscan_mark

.see(index)

调整列表框的位置,使行 引用 是可见的。index

.selection_anchor(index)

将“选择锚点”放在 参数选择的行。一旦这个 锚点已经放置,你可以用 特殊索引形式 .indextk.ANCHOR

例如,对于名为 的列表框 , 此序列将选择第 3、4 和 5 行:lbox

    lbox.selection_anchor(3)
    lbox.selection_set(tk.ANCHOR,5)

.selection_clear(firstlast=None)

取消选择索引和 (包括 )之间的所有线条。 如果省略第二个参数,则取消选择该行 带索引 .firstlastfirst

.selection_includes(index)

如果给定的行是 选中后,则返回 1。index

.selection_set(firstlast=None)

选择索引和 (包括 )之间的所有线条。 如果省略第二个参数,则选择该行 带索引 .firstlastfirst

.size()

返回列表框中的行数。

.xview()

若要使列表框水平滚动,请设置关联的 此方法的水平滚动条。请参见第 14.1 节 “滚动列表框小部件”。command

.xview_moveto(fraction)

滚动列表框,使最左侧的 其最长线的宽度在左侧之外 列表框。分数在 [0,1] 范围内。fraction

.xview_scroll(numberwhat)

水平滚动列表框。对于论点, 使用任一方式滚动 字符,或滚动 页,即按列表框的宽度。参数告诉要滚动多少;负值 在列表框中将文本向右移动, 正值向左。whattk.UNITStk.PAGESnumber

.yview()

若要使列表框可垂直滚动,请将关联的垂直滚动条的选项设置为 方法。请参见第 14.1 节 “滚动列表框小部件”。command

.yview_moveto(fraction)

滚动列表框,使 其最长线的宽度在左侧之外 列表框。分数在 [0,1] 范围内。fraction

.yview_scroll(numberwhat)

垂直滚动列表框。对于论点, 使用任一按行滚动, 或按页面滚动,即 按列表框的高度。论点 告诉要滚动多少;负值移动 列表框中的文本向下,以及正值 向上移动文本。whattk.UNITStk.PAGESnumber

14.1. 滚动小部件Listbox

这是一个代码片段,说明了创建和 将列表框链接到水平和垂直 滚动条。

   self.yScroll = tk.Scrollbar(self, orient=tk.VERTICAL)
    self.yScroll.grid(row=0, column=1, sticky=tk.N+tk.S)

    self.xScroll = tk.Scrollbar(self, orient=tk.HORIZONTAL)
    self.xScroll.grid(row=1, column=0, sticky=tk.E+tk.W)

    self.listbox = tk.Listbox(self,
         xscrollcommand=self.xScroll.set,
         yscrollcommand=self.yScroll.set)
    self.listbox.grid(row=0, column=0, sticky=tk.N+tk.S+tk.E+tk.W)
    self.xScroll['command'] = self.listbox.xview
    self.yScroll['command'] = self.listbox.yview

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[C/C++]函数的栈空间(避免栈空间溢出)

个人主页&#xff1a;北海 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏✨收录专栏&#xff1a;C/C&#x1f91d;希望作者的文章能对你有所帮助&#xff0c;有不足的地方请在评论区留言指正&#xff0c;大家一起学习交流&#xff01;&#x1f9…

部署单点elasticsearch

部署elasticsearch 创建网络 因为我们还需要部署kibana容器&#xff0c;因此需要让es和kibana容器互联。这里先创建一个网络 docker network create es-net 拉取镜像 我们采用elasticsearch的7.12.1版本的镜像 docker pull elasticsearch:7.12.1 运行 运行docker命令&a…

(二)范数与距离

本文主要内容如下&#xff1a; 1. 范数的定义2. 常见的范数举例3. 范数的等价4. 距离与度量空间的定义 1. 范数的定义 定义1-1&#xff1a;设 E E E 为向量空间&#xff0c; R \mathbb{R} R 为实数域。若映射 ∥ ⋅ ∥ : E → R : x ↦ ∥ x ∥ \begin{equation*} \lVert\cdo…

unity VS无法进行断点调试

有时候我们的VS无法进行断点调试&#xff0c;报错如下&#xff1a; 原因是&#xff1a;开启了多个项目&#xff0c;vs无法找到调式项目 解决&#xff1a;点击菜单栏--调试----附加unity调试程序 会弹出一个框&#xff0c;然后选择你要调试的项目 即可

SmokePing网络延迟和丢包监测工具

SmokePing是一种网络延迟和丢包监测工具&#xff0c;其监控原理如下&#xff1a; 监测目标选择&#xff1a;SmokePing通过配置文件&#xff08;Targets&#xff09;定义了要监测的目标&#xff0c;可以是主机、路由器、服务器或其他网络设备。每个目标都有一个唯一的名称和IP地…

实现带头双向循环链表

&#x1f308;带头双向循环链表 描述&#xff1a;一个节点内包含两个指针&#xff0c;一个指向上一个节点&#xff0c;另一个指向下一个节点。哨兵位指向的下一个节点为头节点&#xff0c;哨兵位的上一个指向尾节点。 结构优势&#xff1a;高效率找尾节点&#xff1b;高效率插入…

第60步 深度学习图像识别:误判病例分析(Pytorch)

基于WIN10的64位系统演示 一、写在前面 上期内容基于Tensorflow环境做了误判病例分析&#xff08;传送门&#xff09;&#xff0c;考虑到不少模型在Tensorflow环境没有迁移学习的预训练模型&#xff0c;因此有必要在Pytorch环境也搞搞误判病例分析。 本期以SqueezeNet模型为…

uniapp 配置网络请求并使用请求轮播图

由于平台的限制&#xff0c;小程序项目中不支持 axios&#xff0c;而且原生的 wx.request() API 功能较为简单&#xff0c;不支持拦截器等全局定制的功能。因此&#xff0c;建议在 uni-app 项目中使用 escook/request-miniprogram 第三方包发起网络数据请求。 官方文档&#xf…

FPGA原理与结构——时钟IP核原理学习

一、前言 在之前的文章中&#xff0c;我们介绍了FPGA的时钟结构 FPGA原理与结构——时钟资源https://blog.csdn.net/apple_53311083/article/details/132307564?spm1001.2014.3001.5502 在本文中我们将学习xilinx系列的FPGA所提供的时钟IP核&#xff0c;来帮助我们进一…

数学建模:主成分分析法

&#x1f506; 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 主成分分析法 算法流程 构建原始数据矩阵 X X X &#xff0c;其中矩阵的形状为 x ∗ n x * n x∗n &#xff0c;有 m m m 个对象&#xff0c; n n n 个评价指标。然后进行矩阵的归一化处理。首先计算矩…

从过滤器初识责任链设计模式

下面用的过滤器都是注解方式 可以使用非注解方式,就是去web.xml配置映射关系 上面程序的执行输出是 再加一个过滤器 下面来看一段程序 输出结果 和过滤器是否非常相识 但是上面这段程序存在的问题:在编译阶段已经完全确定了调用关系,如果你想改变他们的调用顺序或者继续添加一…

ADRV9009子卡 设计原理图:FMCJ450-基于ADRV9009的双收双发射频FMC子卡 便携测试设备

FMCJ450-基于ADRV9009的双收双发射频FMC子卡 一、板卡概述 ADRV9009是一款高集成度射频(RF)、捷变收发器&#xff0c;提供双通道发射器和接收器、集成式频率合成器以及数字信号处理功能。北京太速科技&#xff0c;这款IC具备多样化的高性能和低功耗组合&#xff0c;FMC子…

uniapp的 picker 日期时间选择器

效果图&#xff1a; dateTimePicker.js function withData(param){return param < 10 ? 0 param : param; } function getLoopArray(start,end){var start start || 0;var end end || 1;var array [];for (var i start; i < end; i) {array.push(withData(i))…

QT登陆注册界面练习

一、界面展示 二、主要功能界面代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QMainWindow(parent), ui(new Ui::Widget) {ui->setupUi(this);this->setFixedSize(540,410); //设置固定尺寸th…

CentOS 8 安装 Code Igniter 4

在安装好LNMP运行环境基础上&#xff0c;将codeigniter4文件夹移动到/var/nginx/html根目录下&#xff0c;浏览器地址栏输入IP/codeigniter/pulbic 一直提示&#xff1a; Cache unable to write to "/var/nginx/html/codeigniter/writable/cache/". 找了好久&…

nowcoder NC236题 最大差值

目录 题目描述&#xff1a; 示例1 示例2 题干解析&#xff1a; 暴力求解&#xff1a; 代码展示&#xff1a; 优化&#xff1a; 代码展示&#xff1a; 题目跳转https://www.nowcoder.com/practice/a01abbdc52ba4d5f8777fb5dae91b204?tpId128&tqId33768&ru/exa…

SpringBoot Mybatis 多数据源 MySQL+Oracle

一、背景 在SpringBoot Mybatis 项目中&#xff0c;需要连接 多个数据源&#xff0c;连接多个数据库&#xff0c;需要连接一个MySQL数据库和一个Oracle数据库 二、依赖 pom.xml <dependencies><dependency><groupId>org.springframework.boot</groupId&…

Windows:解决MySQL登录ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor=YES)问题

我在下载的MySQL是8.0.32版本&#xff0c;刚下的时候没什么问题第二天启动MySQL服务就出现了 ERROR 1045 (28000): Access denied for user rootlocalhost (using password: YES) 或 ERROR 1045 (28000): Access denied for user rootlocalhost (using password: NO) 这样的问题…

十六、pikachu之SSRF

文章目录 1、SSRF概述2、SSRF&#xff08;URL&#xff09;3、SSRF&#xff08;file_get_content&#xff09; 1、SSRF概述 SSRF(Server-Side Request Forgery&#xff1a;服务器端请求伪造)&#xff1a;其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能&…

【ES6】Getter和Setter

JavaScript中的getter和setter方法可以用于访问和修改对象的属性。这些方法可以通过使用对象字面量或Object.defineProperty()方法来定义。 以下是使用getter和setter方法的示例&#xff1a; <!DOCTYPE html> <script>const cart {_wheels: 4,get wheels(){retu…