lrmb.net
1825908632@qq.com
40
-
vue指令v-once使用实例
https://lrmb.net/jz/s_18864.html
v-once 是 Vue.js 中的一个指令,用于确保一个元素和它的所有子元素只渲染一次。这可以用来优化性能,特别是当你知道某个元素的内容在初次渲染后不会改变时。
v-once 是 Vue.js 中的一个指令,用于确保一个元素和它的所有子元素只渲染一次。这可以用来优化性能,特别是当你知道某个元素的内容在初次渲染后不会改变时。
下面是一个简单的 v-once 的使用示例:
​<template>
<div>
<p v-once>{{ message }}</p>
<button @click="changeMessage">改变消息</button>
</div>
</template>
<script>
export default {
data() {
return {
message: '这是一个不会改变的消息'
};
},
methods: {
changeMessage() {
this.message = '这个消息应该被改变,但由于 v-once,它不会';
}
}
};
</script>
在这个例子中,我们有一个段落元素 <p>,它使用了 v-once 指令,并绑定了一个动态内容 {{ message }}。我们还有一个按钮,当点击时会调用 changeMessage 方法,该方法会尝试改变 message 的值。
但是,由于 <p> 元素使用了 v-once,所以即使 message 的值在后续被改变,这个段落元素的内容也不会被更新。这就是 v-once 的作用:确保元素只渲染一次。
需要注意的是,v-once 不仅仅影响它所在的元素,还影响该元素的所有子元素。所以,如果你在一个容器元素上使用了 v-once,那么这个容器内的所有内容都只会渲染一次。
<a href="https://www.lrmb.net/t/vue" class="keyword">vue</a><a href="https://www.lrmb.net/t/指令" class="keyword">指令</a><a href="https://www.lrmb.net/t/v-once" class="keyword">v-once</a><a href="https://www.lrmb.net/t/实例" class="keyword">实例</a>
vue
免费模板
2024-03-30 05:30
-
指令v-cloak实例
https://lrmb.net/jz/s_18863.html
v-cloak 是 Vue.js 中的一个指令,它主要用于在 Vue 实例未编译完成之前隐藏其标记。这通常用于解决 Vue 渲染前的闪烁问题,即所谓的 FOUC(Flash of Unstyled Content)。
v-cloak 是 Vue.js 中的一个指令,它主要用于在 Vue 实例未编译完成之前隐藏其标记。这通常用于解决 Vue 渲染前的闪烁问题,即所谓的 FOUC(Flash of Unstyled Content)。
v-cloak 指令通常与 CSS 一起使用,以确保在 Vue 编译和渲染完成之前,元素保持隐藏状态。
以下是一个简单的 v-cloak 指令使用实例:
1.HTML
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue v-cloak 示例</title> <style> [v-cloak] { display: none; }​</style>​</head>​<body>​<div id="app" v-cloak>​{{ message }}​</div>​<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>​<script src="app.js"></script>​</body>​</html>
2.javascript(app.js)
new Vue({
el: '#app',
data: {
message: 'Hello, Vue!'
}
});
在这个例子中,当 Vue 实例尚未编译和渲染时,[v-cloak] 选择器将应用于 div 元素,并隐藏它。一旦 Vue 完成编译和渲染,v-cloak 属性将从元素中移除,元素将变得可见。
注意:这个例子使用的是 Vue 2.x 的语法。如果你使用的是 Vue 3.x,语法可能会有所不同,但 v-cloak 的基本用法和原理是相同的。
<a href="https://www.lrmb.net/t/指令" class="keyword">指令</a><a href="https://www.lrmb.net/t/v-cloak" class="keyword">v-cloak</a><a href="https://www.lrmb.net/t/实例" class="keyword">实例</a>
vue
免费模板
2024-03-29 06:59
-
v-pre指令实例教程
https://lrmb.net/jz/s_18862.html
v-pre 是 Vue.js 的一个指令,它的主要作用是指示 Vue.js 跳过该元素及其子元素的编译过程,将其视为静态内容直接输出。这可以提高渲染性能,特别是在模板中包含大量静态内容时。
v-pre 是 Vue.js 的一个指令,它的主要作用是指示 Vue.js 跳过该元素及其子元素的编译过程,将其视为静态内容直接输出。这可以提高渲染性能,特别是在模板中包含大量静态内容时。
下面是一个 v-pre 指令的实例:
<template v-pre>
<div>
<p>这是一段静态内容,不会被 Vue.js 编译处理。</p>
<p>{{ 这段文字不会被替换 }}</p>
<p>1 + 1 = {{ 2 }}</p>
<!-- 这里可以包含更多的静态内容 -->
</div>
</template>
在上面的例子中,v-pre 指令被应用到了 template 元素上,这意味着该 template 元素及其所有子元素都会被视为静态内容。因此,Vue.js 在编译时不会处理这些元素中的任何 Vue.js 表达式或指令。所以,{{ 这段文字不会被替换 }} 和 {{ 2 }} 都不会被替换为任何值,而是会原样输出。
需要注意的是,v-pre 只能应用于单个元素,而不能应用于组件。如果你需要让一个组件的内容保持不变,可以使用 functional 组件或 v-once 指令。
此外,虽然 v-pre 可以提高渲染性能,但在需要动态内容的情况下,它并不适用。因此,在使用 v-pre 时,需要确保被标记为静态的内容确实不需要 Vue.js 的编译处理。
<a href="https://www.lrmb.net/t/v-pre" class="keyword">v-pre</a><a href="https://www.lrmb.net/t/指令" class="keyword">指令</a><a href="https://www.lrmb.net/t/实例" class="keyword">实例</a><a href="https://www.lrmb.net/t/教程" class="keyword">教程</a>
vue
免费模板
2024-03-28 06:16
-
v-html指令简单实例分享
https://lrmb.net/jz/s_18861.html
v-html是Vue.js中的一个指令,它可以将一个变量中的HTML内容渲染到页面上。以下是一个v-html的使用实例:在这个例子中,我们首先在Vue实例中定义了一个变量htmlContent,它包含了一个h1标题和一个p段落。
v-html是Vue.js中的一个指令,它可以将一个变量中的HTML内容渲染到页面上。以下是一个v-html的使用实例:
​<div id="app">
<div v-html="htmlContent"></div>
</div>
<script>
new Vue({
el: '#app',
data: {
htmlContent: '<h1>Hello, Vue.js!</h1><p>Welcome to the world of Vue.js</p>'
}
});
</script>
在这个例子中,我们首先在Vue实例中定义了一个变量htmlContent,它包含了一个h1标题和一个p段落。然后,在模板中,我们使用v-html指令将这个变量中的HTML内容渲染到页面上。具体来说,<div v-html="htmlContent"></div>这行代码会将被htmlContent变量包含的HTML内容(即<h1>Hello, Vue.js!</h1><p>Welcome to the world of Vue.js</p>)渲染到这个div元素中。
需要注意的是,在网站上动态渲染任意HTML是非常危险的,因为这可能导致跨站脚本攻击(XSS)。因此,应该只给可信的HTML代码使用v-html。
<a href="https://www.lrmb.net/t/v-html" class="keyword">v-html</a><a href="https://www.lrmb.net/t/指令" class="keyword">指令</a><a href="https://www.lrmb.net/t/实例" class="keyword">实例</a>
vue
免费模板
2024-03-25 13:58
-
v-text指令实例分享
https://lrmb.net/jz/s_18860.html
v-text指令是Vue.js中用于设置标签的文本值(textContent)的指令。其用法是在需要显示data中数据的元素标签内添加v-text指令,并为其设置一个具体的数据属性。当浏览器加载渲染HTML时,就会把该数据属性的具体取值显示到标签的文本内容中,替换之前显示的文本内容。
v-text指令是Vue.js中用于设置标签的文本值(textContent)的指令。其用法是在需要显示data中数据的元素标签内添加v-text指令,并为其设置一个具体的数据属性。当浏览器加载渲染HTML时,就会把该数据属性的具体取值显示到标签的文本内容中,替换之前显示的文本内容。
以下是一个v-text指令的实例:
<div id="app">
<h2 v-text="message"></h2>
</div>
<script>
new Vue({
el: '#app',
data: {
message: 'Hello, Vue!'
}
})
</script>
在这个例子中,我们创建了一个Vue实例,并挂载到id为"app"的div标签上。在div标签内部,我们添加了一个h2标签,并为它添加了v-text指令,指令的值设置为"message"。在Vue实例的data中,我们定义了一个名为"message"的属性,其值为"Hello, Vue!"。因此,当浏览器加载渲染HTML时,h2标签的文本内容将被替换为"Hello, Vue!"。
需要注意的是,v-text指令会替换元素内的所有内容。如果你只想替换部分内容,可以使用插值表达式,即使用双大括号{{ }}的方式在标签内部进行设置。这样只有双大括号内部的值会被替换,其他内容将原封不动地保留。
<a href="https://www.lrmb.net/t/v-text" class="keyword">v-text</a><a href="https://www.lrmb.net/t/指令" class="keyword">指令</a><a href="https://www.lrmb.net/t/实例" class="keyword">实例</a>
vue
免费模板
2024-03-23 13:16
-
vue指令的v-model小实例分享
https://lrmb.net/jz/s_18859.html
v-model 是 Vue.js 中一个非常有用的指令,它主要用于在表单元素上创建双向数据绑定。这意味着,当用户在输入框中输入内容时,数据会实时更新到 Vue 实例中;同时,如果 Vue 实例中的数据发生变化,输入框的内容也会自动更新。
v-model 是 Vue.js 中一个非常有用的指令,它主要用于在表单元素上创建双向数据绑定。这意味着,当用户在输入框中输入内容时,数据会实时更新到 Vue 实例中;同时,如果 Vue 实例中的数据发生变化,输入框的内容也会自动更新。
下面是一个简单的 v-model 使用实例:
html模板:
<div id="app"> <input type="text" v-model="message" placeholder="输入一些文字..."> <p>你输入的文字是: {{ message }}</p> </div>
Vue 实例:
new Vue({ el: '#app', data: { message: '' } })
​
我们创建了一个 Vue 实例,并绑定到 id 为 app 的元素上。
在 data 中,我们定义了一个名为 message 的属性,初始值为空字符串。
在输入框 <input> 上,我们使用了 v-model 指令,并将其绑定到 message 属性上。
当用户在输入框中输入文字时,message 属性的值会自动更新。
同时,{{ message }} 插值表达式会实时显示 message 的值,所以用户在页面上也能看到他们输入的内容。
这个简单的例子展示了 v-model 如何实现双向数据绑定,使得表单元素和 Vue 实例中的数据保持同步。在实际应用中,v-model 可以与各种表单元素一起使用,如 input、textarea、select 等,并且还可以与计算属性和方法结合使用,以实现更复杂的逻辑。
<a href="https://www.lrmb.net/t/vue" class="keyword">vue</a><a href="https://www.lrmb.net/t/指令" class="keyword">指令</a><a href="https://www.lrmb.net/t/v-model" class="keyword">v-model</a><a href="https://www.lrmb.net/t/小实例" class="keyword">小实例</a><a href="https://www.lrmb.net/t/分享" class="keyword">分享</a>
vue
免费模板
2024-03-21 03:51
-
Vue的基本指令大全
https://lrmb.net/jz/s_18858.html
Vue的基本指令主要包括以下几种:v-bind:用于动态地绑定一个或多个属性,或一个组件prop到表达式。例如,v-bind:class="{ active: isActive }" 或者简写为 :class="{ active: isActive }"。
Vue的基本指令主要包括以下几种:
v-bind:用于动态地绑定一个或多个属性,或一个组件prop到表达式。例如,v-bind:class="{ active: isActive }" 或者简写为 :class="{ active: isActive }"。
v-if:根据表达式的真假条件渲染元素。在切换时元素及它的数据绑定 / 组件被销毁和重建。
v-else:为 v-if 或者 v-else-if 添加“else 块”。
v-else-if:为 v-if 添加“else if 块”。
v-show:根据表达式之真假值,切换元素的 CSS property display。
v-for:基于源数据多次渲染元素或模板块。此指令之值,必须使用特定语法 alias in expression,为当前迭代的元素提供别名。
v-on:监听 DOM 事件,并在触发时运行一些 JavaScript 代码。例如,v-on:click="doSomething" 或者简写为 @click="doSomething"。
v-model:在表单控件元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。
v-text:更新元素的 textContent。如果要更新部分的 textContent,需要使用 {{ Mustache }} 插值。
v-html:更新元素的 innerHTML。注意:内容按普通 HTML 插入 - 不会作为 Vue 模板进行编译。如果试图使用 v-html 来复合局部模板,可能无法正常工作。
v-pre:跳过这个元素和它的子元素的编译过程。可以用来显示原始 Mustache 标签。跳过大量没有指令的节点会加快编译。
v-cloak:保持在元素上直到关联实例结束编译。和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。
v-once:元素和组件只渲染一次。即使随后发生了多次变化,它也不会再重新渲染。
这些指令是 Vue 的核心特性之一,使得 Vue 可以非常灵活地处理 DOM 元素,创建动态和响应式的 Web 应用程序。
<a href="https://www.lrmb.net/t/Vue" class="keyword">Vue</a><a href="https://www.lrmb.net/t/基本" class="keyword">基本</a><a href="https://www.lrmb.net/t/指令" class="keyword">指令</a>
vue
免费模板
2024-03-17 13:14
-
vue指令:v-if示例简单实例
https://lrmb.net/jz/s_18857.html
Vue.js 中的 v-if 是一个条件指令,用于根据表达式的真假值来有条件地渲染一个元素。如果表达式的值为真,那么元素将被渲染;如果表达式的值为假,那么元素将不会被渲染。
Vue.js 中的 v-if 是一个条件指令,用于根据表达式的真假值来有条件地渲染一个元素。如果表达式的值为真,那么元素将被渲染;如果表达式的值为假,那么元素将不会被渲染。
以下是一个 v-if 的基本示例:
<template> <div id="app"> <p v-if="showMessage">Hello, Vue.js!</p> <button @click="toggleMessage">Toggle Message</button> </div> </template> <script> export default { data() { return { showMessage: true } }, methods: { toggleMessage() { this.showMessage = !this.showMessage; } } } </script>
在这个例子中,我们有一个段落 <p> 元素和一个按钮 <button> 元素。段落元素是否显示取决于 showMessage 这个数据属性的值。如果 showMessage 为 true,那么段落元素将显示;如果 showMessage 为 false,那么段落元素将不显示。
按钮元素上绑定了一个点击事件处理器,当点击按钮时,会调用 toggleMessage 方法。这个方法会切换 showMessage 的值,从而改变段落元素的显示状态。
注意,v-if 是一个“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。如果你只是想改变元素的可见性,而不是它的渲染状态,那么应该使用 v-show 指令。
<a href="https://www.lrmb.net/t/vue" class="keyword">vue</a><a href="https://www.lrmb.net/t/指令" class="keyword">指令</a><a href="https://www.lrmb.net/t/示例" class="keyword">示例</a><a href="https://www.lrmb.net/t/实例" class="keyword">实例</a>
vue
2024-03-16 14:35
-
Vue 的主要特点包括哪些?
https://lrmb.net/jz/s_18856.html
Vue.js 是一个构建数据驱动的 web 界面的渐进式框架。它的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。Vue 的主要特点包括:响应式数据绑定,组件化,轻量级,灵活的指令,客户端渲染
Vue.js 是一个构建数据驱动的 web 界面的渐进式框架。它的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,也便于与第三方库或已有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
Vue 的主要特点包括:
响应式数据绑定:Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将已渲染的 DOM 绑定至底层 Vue 实例的数据。当数据改变时,视图会自动更新。
组件化:Vue 允许你将 UI 拆分为可重用的组件,每个组件都有它自己的 HTML、CSS 和 JavaScript。这有助于代码的复用和模块化。
轻量级:Vue.js 的体积很小,压缩后只有几十KB,可以很方便地集成到项目中。
灵活的指令:Vue 提供了 v-if、v-for、v-bind、v-model 等指令,用于处理元素的显示、循环、属性绑定和数据同步等操作。
客户端渲染:Vue.js 专注于视图层,通过 DOM 操作来更新视图,不直接操作 DOM,而是通过数据驱动视图的变化。
<a href="https://www.lrmb.net/t/Vue" class="keyword">Vue</a><a href="https://www.lrmb.net/t/特点" class="keyword">特点</a>
vue
2024-03-15 13:19
-
紫色html5问答平台手机端dw网页模板
https://lrmb.net/m/s_18855.html
紫色html5问答平台手机端dw网页模板
<a href="https://www.lrmb.net/t/紫色" class="keyword">紫色</a><a href="https://www.lrmb.net/t/html5" class="keyword">html5</a><a href="https://www.lrmb.net/t/问答平台" class="keyword">问答平台</a><a href="https://www.lrmb.net/t/手机端" class="keyword">手机端</a><a href="https://www.lrmb.net/t/dw" class="keyword">dw</a>
网页模板
2024-02-18 13:24
-
thinkphp5版本多数据库配置方法
https://lrmb.net/jz/s_18854.html
thinkphp5版本多数据库配置方法,假如你的网站是用thinkphp5建设,如何添加多少个数据库的连接呢?
thinkphp5版本多数据库配置方法,假如你的网站是用thinkphp5建设,如何添加多少个数据库的连接呢?以下两步,教您完成。
第一步,在thinkphp的安装目录下找到config/database.php添加下面配置代码:
'db1'=>[ 'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => '数据库名', 'username' => '账号', 'password' => '密码', 'hostport' => '3306' ],
添加后如下:
<?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK ]// +----------------------------------------------------------------------// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: liu21st <liu21st@gmail.com>// +----------------------------------------------------------------------return [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'test', // 用户名 'username' => 'root', // 密码 'password' => 'root', // 端口 'hostport' => '3306', // 连接dsn 'dsn' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => '', // 数据库调试模式 'debug' => false, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 'deploy' => 0, // 数据库读写是否分离 主从式有效 'rw_separate' => false, // 读写分离后 主服务器数量 'master_num' => 1, // 指定从服务器序号 'slave_no' => '', // 自动读取主库数据 'read_master' => false, // 是否严格检查字段是否存在 'fields_strict' => true, // 数据集返回类型 'resultset_type' => 'array', // 自动写入时间戳字段 'auto_timestamp' => false, // 时间字段取出后的默认时间格式 'datetime_format' => 'Y-m-d H:i:s', // 是否需要进行SQL性能分析 'sql_explain' => false, // Builder类 'builder' => '', // Query类 'query' => '\\think\\db\\Query', // 是否需要断线重连 'break_reconnect' => false, // 断线标识字符串 'break_match_str' => [], 'db1'=>[ 'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => '数据库名', 'username' => '账号', 'password' => '密码', 'hostport' => '3306' ],];
第二步,默认数据库的操作方法不变,而新添加的数据库db1操作示例如下:
​ public function getok(){ $data['name']='测试一下'; $data['info']='测试一下内容'; $data['status']=0; $test1=Db::connect("db1")->name("test")->insert($data); $test1=Db::connect("db1")->name("test")->select(); var_dump($test1); exit; }
<a href="https://www.lrmb.net/t/thinkphp" class="keyword">thinkphp</a><a href="https://www.lrmb.net/t/数据库" class="keyword">数据库</a><a href="https://www.lrmb.net/t/配置" class="keyword">配置</a>
php
不详
2024-02-17 12:23
-
python复制指定类型文件去指定文件夹
https://lrmb.net/jz/s_18853.html
python复制文件夹和子文件夹下所有txt文件去指定位置:
python复制文件夹和子文件夹下所有txt文件去指定位置:
运行结果:
完整代码:
import osimport shutilimport timepath = input('请输入源路径')topath = input('请输入新路径')NUM_COUNT = 0def seltxt(path,topath): global NUM_COUNT for root, dirs, files in os.walk(path): for file in files: # L.append(os.path.join(file)) if os.path.splitext(file)[1] == '.txt': file_path = os.path.join(root, file) file_name = os.path.join(file) NUM_COUNT = NUM_COUNT + 1 #print('成功', NUM_COUNT, file_path) #print('成功', NUM_COUNT, file_name) file_parpath = topath+'/' if os.path.exists(file_parpath): pass # 复制到指定目录,首先创建一个目录 else: os.mkdir(file_parpath) fromfile = file_path tofile = file_parpath+file_name if os.path.exists(tofile): now = str(int(time.time())) tofile = file_parpath+now+file_name # 复制到指定目录,首先创建一个目录 else: pass print('成功', NUM_COUNT, tofile) shutil.copy(fromfile,tofile)seltxt(path,topath)
<a href="https://www.lrmb.net/t/python" class="keyword">python</a><a href="https://www.lrmb.net/t/复制" class="keyword">复制</a><a href="https://www.lrmb.net/t/类型" class="keyword">类型</a><a href="https://www.lrmb.net/t/文件" class="keyword">文件</a><a href="https://www.lrmb.net/t/指定" class="keyword">指定</a><a href="https://www.lrmb.net/t/文件夹" class="keyword">文件夹</a>
python
不详
2024-02-15 13:06
-
python如何实现抓取网页中的图片呢?
https://lrmb.net/jz/s_18852.html
抓取网站页面中的图片并保存到本地。python如何实现抓取网页中的图片呢?分享一个requests抓取网站页面图片的例子
抓取网站页面中的图片并保存到本地。
python如何实现抓取网页中的图片呢?分享一个requests抓取网站页面图片的例子
直接贴代码:
# -*- coding: utf-8 -*-import requestsimport re# 打开网页,获取网页源码def getHtml(url): #print(url) html = requests.get(url) #print(html.text) return html.textdef getImag(html): imagelist = re.findall('src="(.*?)"', html) i = 1 for url in imagelist: #获取图片后缀 urlext = url.split('.')[-1] #获取文件名称 urlname = url.split('.')[-2].split('/')[-1] #print(urlext) #return if urlext=='jpg' or urlext=='png' or urlext=='gif': print('Downloding:' + url) else: continue # 从图片地址下载数据 try: image = requests.get(url) # 在目标路径创建相应文件 f = open('K:/1/' + urlname + '.' + urlext, 'wb') # 将下载到的图片数据写入文件 f.write(image.content) print('下载成功', url) f.close() except: print('下载失败',url) continue return '结束'print('获取某站文章上面的图片,lrmb.net设置了防盗链的白名单的无法下载')url = 'https://www.xiuyixia.com/'print('正在获取图片')html = getHtml(url)print('下载图片中')print(getImag(html))print('下载完成')
代码中
f = open('K:/1/' + urlname + '.' + urlext, 'wb')
要换成你的图片保存的本地路径
url = 'https://www.xiuyixia.com/'
url要改成你的网址
<a href="https://www.lrmb.net/t/python" class="keyword">python</a><a href="https://www.lrmb.net/t/网页" class="keyword">网页</a><a href="https://www.lrmb.net/t/图片" class="keyword">图片</a>
python
不详
2024-02-15 13:04
-
tkinter主窗口属性示例
https://lrmb.net/jz/s_18851.html
python的gui库tkinter的主框体属性
python的gui库tkinter的主框体属性
# 窗口标题root.title('h2b.cc标题,大小:360x220')
# (0,0)表示固定窗口大小,非0表示框体可以延伸,框体大小可调性,分别表示x,y方向的可变性;root.resizable(0,0)
# 指定主框体大小root.geometry('360x220')
def quits(): # 退出框体 root.quit()
def reflashs(): #刷新 root.update()
完整代码:
import tkinter as tkroot = tk.Tk()# 窗口标题root.title('h2b.cc标题,大小:360x220')# (0,0)表示固定窗口大小,非0表示框体可以延伸,框体大小可调性,分别表示x,y方向的可变性;root.resizable(0,0)# 指定主框体大小root.geometry('360x220')def quits(): # 退出框体 root.quit()tk.Button(root,text='退出',command=quits).pack()def reflashs(): #刷新 root.update()tk.Button(root,text='刷新',command=reflashs).pack()root.mainloop()
<a href="https://www.lrmb.net/t/tkinter" class="keyword">tkinter</a><a href="https://www.lrmb.net/t/主窗口" class="keyword">主窗口</a><a href="https://www.lrmb.net/t/属性" class="keyword">属性</a><a href="https://www.lrmb.net/t/示例" class="keyword">示例</a>
python
不详
2024-02-14 04:52
-
python如何打包.py文件成exe?
https://lrmb.net/jz/s_18850.html
python打包程序的方法有很多种,有py2exe打包,本文介绍pyinstaller打包的过程
python打包程序的方法有很多种,有py2exe打包,本文介绍pyinstaller打包的过程:
安装pyinstaller库命令:
pip install pyinstaller
如果报Read timed out.错就换下面的:
pip install -i https://pypi.douban.com/simple pyinstaller
安装成功后,需要给软件一个ico图标(在线生成或者ps都可以)
最后输入打包命令:
pyinstall -F -i -w ****.ico ****.py
***表示你的ico名和要打包的.py文件名
打包命令需要打开cmd切换到要打包的文件目录下执行,如遇报错,将dist里的exe拉出,与ico图片放在同一目录下即可~
打包命令,控制台显示参数:
隐藏控制台:pyinstaller -F -i -w 图片名.ico 文件.py
使用控制台:pyinstaller -F -i -c 图片名.ico 文件.py
<a href="https://www.lrmb.net/t/python" class="keyword">python</a><a href="https://www.lrmb.net/t/打包" class="keyword">打包</a><a href="https://www.lrmb.net/t/py" class="keyword">py</a><a href="https://www.lrmb.net/t/文件" class="keyword">文件</a><a href="https://www.lrmb.net/t/exe" class="keyword">exe</a>
python
不详
2024-02-14 04:50
-
PyQt5电脑截屏保存
https://lrmb.net/jz/s_18849.html
python实现电脑截屏有好多方法,PyQt5也能很方便的实现。
python实现电脑截屏有好多方法,PyQt5也能很方便的实现。
实例如下:
引入库:
from PyQt5.QtWidgets import QApplicationimport win32guiimport sys
实现截屏:
h2b = win32gui.FindWindow(None, 'C:\Windows\system32\c md.exe')app = QApplication(sys.argv)screen = QApplication.primaryScreen()
保存图片:
img = screen.grabWindow(h2b).toImage()img.save("screenshot1.jpg")
完整代码:
from PyQt5.QtWidgets import QApplicationimport win32guiimport sysh2b = win32gui.FindWindow(None, 'C:\Windows\system32\cmd.exe')app = QApplication(sys.argv)screen = QApplication.primaryScreen()img = screen.grabWindow(h2b).toImage()print('截屏成功')img.save("screenshot1.jpg")
<a href="https://www.lrmb.net/t/PyQt5" class="keyword">PyQt5</a><a href="https://www.lrmb.net/t/电脑" class="keyword">电脑</a><a href="https://www.lrmb.net/t/截屏" class="keyword">截屏</a><a href="https://www.lrmb.net/t/保存" class="keyword">保存</a>
python
不详
2024-01-25 04:53
-
小插曲:安装PyQt5库时报错
https://lrmb.net/jz/s_18848.html
ReadTimeoutError,host=files.pythonhosted.org
HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
安装PyQt5库时报错(安装命令是: pip install PyQt5) :
pip --default-timeout=100 install PyQt5Collecting PyQt5Using cached PyQt5-5.15.6-cp36-abi3-win_amd64.whl (6.7 MB)Collecting PyQt5-Qt5>=5.15.2Downloading PyQt5_Qt5-5.15.2-py3-none-win_amd64.whl (50.1 MB)| | 61 kB 8.8 kB/s eta 1:34:38ERROR: Exception:Traceback (most recent call last):File "e:\python\lib\site-packages\pip_vendor\urllib3
esponse.py", line 438, in _error_catcheryieldFile "e:\python\lib\site-packages\pip_vendor\urllib3
esponse.py", line 519, in readdata = self._fp.read(amt) if not fp_closed else b""File "e:\python\lib\site-packages\pip_vendor\cachecontrol\filewrapper.py", line 62, in readdata = self.__fp.read(amt)File "e:\python\lib\http\client.py", line 458, in readn = self.readinto(b)File "e:\python\lib\http\client.py", line 502, in readinton = self.fp.readinto(b)File "e:\python\lib\socket.py", line 669, in readintoreturn self._sock.recv_into(b)File "e:\python\lib\ssl.py", line 1241, in recv_intoreturn self.read(nbytes, buffer)File "e:\python\lib\ssl.py", line 1099, in readreturn self._sslobj.read(len, buffer)socket.timeout: The read operation timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):File "e:\python\lib\site-packages\pip_internal\cli\base_command.py", line 164, in exc_logging_wrapperstatus = run_func(*args)File "e:\python\lib\site-packages\pip_internal\cli
eq_command.py", line 205, in wrapperreturn func(self, options, args)File "e:\python\lib\site-packages\pip_internal\commands\install.py", line 338, in runrequirement_set = resolver.resolve(File "e:\python\lib\site-packages\pip_internal
esolution
esolvelib
esolver.py", line 92, in resolveresult = self._result = resolver.resolve(File "e:\python\lib\site-packages\pip_vendor
esolvelib
esolvers.py", line 482, in resolvestate = resolution.resolve(requirements, max_rounds=max_rounds)File "e:\python\lib\site-packages\pip_vendor
esolvelib
esolvers.py", line 374, in resolvefailure_causes = self._attempt_to_pin_criterion(name)File "e:\python\lib\site-packages\pip_vendor
esolvelib
esolvers.py", line 214, in _attempt_to_pin_criterioncriteria = self._get_updated_criteria(candidate)File "e:\python\lib\site-packages\pip_vendor
esolvelib
esolvers.py", line 205, in _get_updated_criteriaself._add_to_criteria(criteria, requirement, parent=candidate)File "e:\python\lib\site-packages\pip_vendor
esolvelib
esolvers.py", line 173, in _add_to_criteriaif not criterion.candidates:File "e:\python\lib\site-packages\pip_vendor
esolvelib\structs.py", line 151, in boolreturn bool(self._sequence)File "e:\python\lib\site-packages\pip_internal
esolution
esolvelib\found_candidates.py", line 155, in boolreturn any(self)File "e:\python\lib\site-packages\pip_internal
esolution
esolvelib\found_candidates.py", line 143, inreturn (c for c in iterator if id(c) not in self._incompatible_ids)File "e:\python\lib\site-packages\pip_internal
esolution
esolvelib\found_candidates.py", line 47, in _iter_builtcandidate = func()File "e:\python\lib\site-packages\pip_internal
esolution
esolvelib\factory.py", line 201, in _make_candidate_from_linkself._link_candidate_cache[link] = LinkCandidate(File "e:\python\lib\site-packages\pip_internal
esolution
esolvelib\candidates.py", line 281, in initsuper().init(File "e:\python\lib\site-packages\pip_internal
esolution
esolvelib\candidates.py", line 156, in initself.dist = self._prepare()File "e:\python\lib\site-packages\pip_internal
esolution
esolvelib\candidates.py", line 225, in _preparedist = self._prepare_distribution()File "e:\python\lib\site-packages\pip_internal
esolution
esolvelib\candidates.py", line 292, in _prepare_distributionreturn preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)File "e:\python\lib\site-packages\pip_internal\operations\prepare.py", line 482, in prepare_linked_requirementreturn self._prepare_linked_requirement(req, parallel_builds)File "e:\python\lib\site-packages\pip_internal\operations\prepare.py", line 527, in _prepare_linked_requirementlocal_file = unpack_url(File "e:\python\lib\site-packages\pip_internal\operations\prepare.py", line 213, in unpack_urlfile = get_http_url(File "e:\python\lib\site-packages\pip_internal\operations\prepare.py", line 94, in get_http_urlfrom_path, content_type = download(link, temp_dir.path)File "e:\python\lib\site-packages\pip_internal
etwork\download.py", line 145, in callfor chunk in chunks:File "e:\python\lib\site-packages\pip_internal\cli\progress_bars.py", line 144, in iterfor x in it:File "e:\python\lib\site-packages\pip_internal
etwork\utils.py", line 63, in response_chunksfor chunk in response.raw.stream(File "e:\python\lib\site-packages\pip_vendor\urllib3
esponse.py", line 576, in streamdata = self.read(amt=amt, decode_content=decode_content)File "e:\python\lib\site-packages\pip_vendor\urllib3
esponse.py", line 541, in readraise IncompleteRead(self._fp_bytes_read, self.length_remaining)File "e:\python\lib\contextlib.py", line 131, in exitself.gen.throw(type, value, traceback)File "e:\python\lib\site-packages\pip_vendor\urllib3
esponse.py", line 443, in _error_catcherraise ReadTimeoutError(self._pool, None, "Read timed out.")pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
解决办法一,命令修改成:
pip install -i https://pypi.douban.com/simple PyQt5
​
<a href="https://www.lrmb.net/t/小插曲" class="keyword">小插曲</a><a href="https://www.lrmb.net/t/安装" class="keyword">安装</a><a href="https://www.lrmb.net/t/PyQt5" class="keyword">PyQt5</a>
python
不详
2024-01-25 04:45
-
python使用ImageGrab截屏简单实现
https://lrmb.net/jz/s_18847.html
安装pil库:ImageGrab实现截屏的简单实现:
安装pil库:
pip install pillow
pip install pil
ImageGrab实现截屏的简单实现:
第一步,截屏(bbos 是坐标(x0,y0,x1,y1)):
img = ImageGrab.grab(bbox=(100, 161, 1141, 610))
第二步,保存:
img.save('0.jpg', 'JPEG')
完整代码:
from PIL import ImageGrabimg = ImageGrab.grab(bbox=(100, 161, 1141, 610))img.save('0.jpg', 'JPEG')img.show()
<a href="https://www.lrmb.net/t/python" class="keyword">python</a><a href="https://www.lrmb.net/t/ImageGrab" class="keyword">ImageGrab</a><a href="https://www.lrmb.net/t/截屏" class="keyword">截屏</a><a href="https://www.lrmb.net/t/简单" class="keyword">简单</a><a href="https://www.lrmb.net/t/实现" class="keyword">实现</a>
python
不详
2024-01-22 03:21
-
python库cv2绘制边框
https://lrmb.net/jz/s_18846.html
python库cv2绘制边框,opencv中copyMakeBorder绘制图片边框,opencv的方法copyMakeBorder的使用实例:
python库cv2绘制边框,opencv中copyMakeBorder绘制图片边框,opencv的方法copyMakeBorder的使用实例:
安装opencv,前面有说到,直接用命令:
pip install opencv-python
新建图片显示的窗口,设置图片宽和高,以及四周边框的宽度:
# 读取源图片img = r'logo.png'image = cv2.imread(img)# 图片宽高 W HW, H = 256, 256image = cv2.resize(image, (W, H))# 新建图片显示的窗口window_name = '中文图片'# 设置边框宽度top, bottom, left, right = 10, 5, 10, 5
设置边框的颜色:
# rgb颜色值 0~255R, B, G = 0, 255, 0
绘制边框:
# 绘制边框默认BORDER_CONSTANTimage = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_CONSTANT, value=(R, B, G))image1 = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_DEFAULT)image2 = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_ISOLATED)image3 = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_REFLECT)image4 = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_REFLECT101)image5 = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_REPLICATE)# image6 = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_TRANSPARENT)image7 = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_WRAP)
borderType:扩充边缘的类型,就是外插的类型,OpenCV中给出以下几种方式
BORDER_REPLICATE 重复: 就是对边界像素进行复制
BORDER_REFLECT 反射:对感兴趣的图像中的像素在两边进行复制例如:fedcba|abcdefgh|hgfedcb 反射
BORDER_REFLECT_101 反射101: 例子:gfedcb|abcdefgh|gfedcba
BORDER_WRAP 外包装:cdefgh|abcdefgh|abcdefg
BORDER_CONSTANT 常量复制:例子:iiiiii|abcdefgh|iiiiiii
BORDER_REPLICATE:复制法,也就是复制最边缘像素。
BORDER_REFLECT_101:对称法,也就是以最边缘像素为轴,对称。
显示加载好边框的图片在窗口中:
# 加完边框后的图片显示在窗口中cv2.imshow(zh_ch(window_name), image)
运行结果:
完整代码:
# -*- coding: UTF8 -*-import cv2# 解决imshow中文乱码问题def zh_ch(string): return string.encode("gbk").decode(errors="ignore")# 读取源图片img = r'logo.png'image = cv2.imread(img)# 图片宽高 W HW, H = 256, 256image = cv2.resize(image, (W, H))# 新建图片显示的窗口window_name = '中文图片'# 设置边框宽度top, bottom, left, right = 10, 5, 10, 5# rgb颜色值 0~255R, B, G = 0, 255, 0# 绘制边框默认BORDER_CONSTANTimage = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_CONSTANT, value=(R, B, G))image1 = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_DEFAULT)image2 = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_ISOLATED)image3 = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_REFLECT)image4 = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_REFLECT101)image5 = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_REPLICATE)# image6 = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_TRANSPARENT)image7 = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_WRAP)# 加完边框后的图片显示在窗口中cv2.imshow(zh_ch(window_name), image)# 让输出窗口不自动关闭,等待输入按键关闭sscv2.waitKey()
cv2.isshow窗口标题中文会出现乱码,解决办法是:
# 解决imshow中文乱码问题def zh_ch(string): return string.encode("gbk").decode(errors="ignore")
<a href="https://www.lrmb.net/t/python" class="keyword">python</a><a href="https://www.lrmb.net/t/cv2" class="keyword">cv2</a><a href="https://www.lrmb.net/t/绘制" class="keyword">绘制</a><a href="https://www.lrmb.net/t/边框" class="keyword">边框</a>
python
不详
2024-01-22 03:19
-
tkinter中menu的用法简单示例
https://lrmb.net/jz/s_18845.html
python界面库tkinter中的menu组件,如何创建父菜单子下拉子菜单,以及如何获取菜单的label属性值:
python界面库tkinter中的menu组件,如何创建父菜单子下拉子菜单,以及如何获取菜单的label属性值:
首先安装tkinter库,并引入:
import tkinter as tk
创建父菜单,然后把子菜单放进去:
# 新建一个顶级menumenuTop = tk.Menu(root)menuSun = tk.Menu(menuTop, tearoff=0)menu1 = menuSun.add_command(label='新建', command=lambda: xz(menuSun, 0))menu2 = menuSun.add_command(label='编辑', command=lambda: xz(menuSun, 1))menu3 = menuSun.add_command(label='删除', command=lambda: xz(menuSun, 2))# 把子菜单加到顶级菜单中menuTop.add_cascade(label='txt', menu=menuSun)
把整个菜单放到窗口中:
root.config(menu=menuTop)
打印对应选中的子菜单label属性方法:
def xz(text, i): x = text.entrycget(i, "label") print(x)
输出结果:
完整代码:
import tkinter as tkroot = tk.Tk()root.title('tkinter下拉菜单')# 输出对应子菜单的label值def xz(text, i): x = text.entrycget(i, "label") print(x)# 新建一个顶级menumenuTop = tk.Menu(root)menuSun = tk.Menu(menuTop, tearoff=0)menu1 = menuSun.add_command(label='新建', command=lambda: xz(menuSun, 0))menu2 = menuSun.add_command(label='编辑', command=lambda: xz(menuSun, 1))menu3 = menuSun.add_command(label='删除', command=lambda: xz(menuSun, 2))# 把子菜单加到顶级菜单中menuTop.add_cascade(label='txt', menu=menuSun)root.config(menu=menuTop)root.mainloop()
<a href="https://www.lrmb.net/t/tkinter" class="keyword">tkinter</a><a href="https://www.lrmb.net/t/menu" class="keyword">menu</a><a href="https://www.lrmb.net/t/用法" class="keyword">用法</a><a href="https://www.lrmb.net/t/简单" class="keyword">简单</a><a href="https://www.lrmb.net/t/示例" class="keyword">示例</a>
python
不详
2024-01-21 11:01