如何更改 QPlainTextEdit 中选项卡的宽度

2023-12-23

When using the QPlaintextEdit in PyQt5, if I press the Tab button on my keyboard I get a tab space which is equal to size of six spaces together. But I want it to be the size of four spaces, so that when I use:

TextEdit.setPlainTextEdit('\t')

我应该得到一个制表符空格的缩进,总共有四个空格那么长。

我尝试使用四个空格而不是制表符空格,但事情变得复杂,因为代码变得越来越长。


选项卡的宽度可以设置为设置制表位距离 https://doc.qt.io/qt-5/qplaintextedit.html#tabStopDistance-prop。这需要一个浮点值,可以使用以下公式计算QFontMetricsF https://doc.qt.io/qt-5/qfontmetricsf.html class:

textedit = QtWidgets.QPlainTextEdit()
textedit.setTabStopDistance(
    QtGui.QFontMetricsF(textedit.font()).horizontalAdvance(' ') * 4)

不过这个方法是在Qt-5.10才引入的,所以对于Qt4以及老版本的Qt5,必须使用设置制表位宽度 https://doc.qt.io/qt-5/qplaintextedit-obsolete.html(现在已被记录为已过时):

textedit = QtWidgets.QPlainTextEdit()
textedit.setTabStopWidth(textedit.fontMetrics().width(' ') * 4)

这种方法的一大缺点是它只需要integer价值观。这意味着不能保证使用非整数字符宽度的字体(例如 DejaVu 字体和许多其他字体)提供准确的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何更改 QPlainTextEdit 中选项卡的宽度 的相关文章

  • 意外的缩进错误,但缩进看起来正确

    我一直在尝试运行此代码 但它引发了缩进错误 无论我尝试什么 结果都是一样的 如果我删除之前的缩进def str self 和代码的其余部分 它工作正常 但在输出时 它不显示问题 而是显示 问题对象 def str self Indentat
  • 没有名为 pandas_datareader 的模块

    我刚刚安装了pandas datareader using pip install pandas datareader运行成功 现在我尝试将它用于教程 当我尝试导入时出现此错误 import pandas datareader as pdr
  • 如何将 xlsx 读取为 pandas 数据框,并将公式作为字符串

    我有一个包含一些计算列的 Excel 文件 例如 我在 a 列中有一些数据 而 b 列是使用 a 列中的值计算的 我需要将新数据附加到 a 列并计算 b 列并保存文件 import pandas as pd df pd DataFrame
  • 从谷歌云存储桶加载数据

    这是一个从谷歌云存储桶加载数据的函数 action dataset folder path action data set zip path actions zip url http console cloud google com sto
  • Discord-py Rewrite - Cog 中的基本 aiohttp Web 服务器

    我正在尝试将基本的 aiohttp 网络服务器集成到 Cog 中 使用 discord py 重写 我对齿轮使用以下代码 from aiohttp import web import discord from discord ext imp
  • 将大型 Twitter JSON 数据 (7GB+) 加载到 Python 中

    我已经通过 AWS 设置了一个公共流来收集推文 现在想做一些初步分析 我的所有数据都存储在 S3 存储桶中 5mb 文件 我下载了所有内容并将所有文件合并为一个 每条推文都按照 Twitter 规范存储为标准 JSON 对象 基本上 合并的
  • Kubernetes Python 客户端连接问题

    我已经设置了官方 Kubernetes Python 客户端 https github com kubernetes client python https github com kubernetes client python 我正在运行
  • 在unittest.main()之后执行命令

    我从另一个 Python 脚本调用以下脚本 测试 py 日志文件 它应该运行测试并将结果保存在日志文件中 但由于某种原因 之后的命令unittest main testRunner runner 没有被执行 我什至不确定文件写入后是否会关闭
  • Python列表内存存储[重复]

    这个问题在这里已经有答案了 据我了解 Python 列表本质上是 C 数组 它们分配特定的顺序内存块 但是 这些内存块实际上存储列表中的数据还是它们只是指向内存中存储实际数据的另一个位置 它可能取决于列表中存储的对象的大小吗 因为您可以轻松
  • 将 pandas DataFrame 中的数字转换为特定字符串格式

    我需要运行一个可以通过循环完成的任务 但我想有一种更有效 更漂亮的方法来做到这一点 我有一个DataFrame它有一个整数列 我想将其转换为 4 位字符串表示形式 也就是说 3 应转换为 0003 234 应转换为 0234 我正在寻找一种
  • Python3.5 BeautifulSoup4从div中的'p'获取文本

    我试图从 div 类 caselawcontent searchable content 中提取所有文本 此代码仅打印 HTML 不打印网页中的文本 我缺少什么来获取文本 以下链接位于 finteredcasesdoc text 文件中 h
  • python sqlite3从excel创建数据库

    我正在尝试从 Excel 电子表格创建数据库 我有下面的代码 问题是当我运行代码时 我的数据库为每列创建一个表 我想为工作簿中列出的每个电子表格创建一个表格 工作表名称为工作表 1 和工作表 2 import sqlite3 import
  • python3中“super”对象没有属性“__getattr__”

    如何覆盖 getattr 使用 python 3 和继承 当我使用以下内容时 class MixinA def getattr self item Process item and return value if known if item
  • 导入错误 - 发生了什么?

    Python 导入 再次 我有这个文件结构 test start py from scripts import main scripts init py empty main py from import install install p
  • Python 3 中的相对导入

    我想从同一目录中的另一个文件导入函数 通常 以下其中一项有效 from mymodule import myfunction from mymodule import myfunction 但另一个给了我以下错误之一 ImportError
  • 现在与出生日期之间的年、月、日、分钟差异

    import datetime birthday datetime datetime 1996 8 15 differnce datetime datetime now birthday This returns a timedelta o
  • “ModuleNotFoundError:我的 Docker 容器中没有名为 的模块”

    我正在尝试在 Docker 容器中运行 python 脚本 但我不知道为什么 python 找不到任何 python 模块 我认为它与 PYTHONPATH 环境变量有关 所以我尝试将其添加到 Dockerfile 中 如下所示 ENV P
  • 如何只获取父类对象的属性

    我有两节课 class Parent object def init self id name self id id self name name self parent vars id name make a copy def print
  • 将 github 上的包安装到 Spyder 中

    我一直在尝试安装并导入mpl finance来自 github 的包 在我的 Spyder 环境中没有成功 我努力了 pip install e git https github com matplotlib mpl finance git
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your

随机推荐

  • 存储在 HashMap 中的 Java 泛型 Pair 无法正确检索 key->value

    这是 Pair java import java lang import java util public class Pair
  • 移动后是否需要重置 std::list ?

    我有以下代码 std list some data std list new data std move some data some data clear 问题是是否some data clear 是必要的 作为记录 some data以
  • Ogre3D、多显示器和鼠标光标

    我正在开发一个需要在 OpenGL 中进行多头渲染的应用程序 现在 我可以渲染到多个屏幕 但鼠标光标的移动仅限于单个屏幕 但是 我希望能够在所有渲染的屏幕上使用鼠标光标 有人遇到过同样的问题吗 如果有 你是如何解决的 我为此找到了一个可行的
  • SVG 和 div 之间的白色间隙

    这不是我能找到的任何当前问题的重复 我已经尝试过诸如向 SVG 元素添加 block flex 之类的答案 但我相信这是一个不同的 如果有任何相关的话 我正在使用 Tailwind 这是存在此问题的多个不同 SVG 之一
  • Java 命令在 NLTK 斯坦福 POS Tagger 中失败

    我请求您帮助解决 Java 命令失败 错误 每当我尝试标记大小为 2 MB 的阿拉伯语语料库时 该错误就会不断抛出 我搜索了网络和 stanford POS tagger 邮件列表 但是 我没有找到解决方案 我读了一些关于类似问题的帖子 有
  • 等待多个异步下载任务

    我想同时下载一些文件 例如 100 个文件 所以我决定将我的下载线程添加到调度队列中 GCD 将调整同时运行的线程数量 这里的问题是 dispatch async将立即完成 因为task将在另一个线程上运行 因此 如果urls的长度是100
  • Flex 自定义组件不接受脚本:“String”类型的默认属性“text”的多个初始值设定项值

    我正在使用 Flex 4 和 Flash Builder 4 我只是想学习创建组件 我创建了一个 mxml 组件 如下所示并将其包含在我的应用程序中
  • 如何在 VB.NET 中引发事件之前检查订阅者

    在 C 中 您可以执行以下操作 if Changed null Changed this EventArgs Empty 但是您在 VB NET 中做什么呢 有RaiseEvent but is RaiseEvent Changed Me
  • 更改按钮文本和操作 - Android 开发

    我无法弄清楚如何更改按钮的文本和操作 我想要做的是有一个带有文本 播放 的按钮 单击它会播放一首歌曲并将文本更改为 暂停 然后 当您再次单击它时 它将暂停歌曲并将文本更改为 播放 我知道如何使用媒体播放器 编码 只是不知道如何以这种方式编码
  • 线程完成工作后如何返回值?

    假设我们有一个简单的例子 public Example extends Thread String temp public Example Override public void run temp a value public stati
  • 鞍点的位置

    我有以下问题 假设我们有一个9 8的矩阵 如果矩阵位于某个位置 则称其具有 鞍点 是其行中的最小值和其列中的最大值 在符号 中 a i j 是鞍点 如果 a i j min a i k max a k k 1 lt k lt 8 1 lt
  • 使用Python的正则表达式将浮点数替换为“dot”

    我想替换 出现在我的字符串中带有 点 的浮点数中 反之亦然 Example t I am coder I work in Google I earn 98748 85 Expected output I am coder I work in
  • R 中的字符编码

    我正在尝试阅读csv由 Sql Server Management Studio 生成并编码为的文件UTF 8 我保存时选择了该选项 到R版本 3 0 1 x64 至read csv2 我无法让 R 正确显示特殊字符 如果我设置fileEn
  • 从字符串中获取整数月份值

    我正在解析来自 AWS 的 cron 字符串 如下所示cron 0 7 13 November 2019 有没有一种干净的方式可以从November回到11使用 Go 的内置类型 这time Month类型允许映射int to string
  • 从亚马逊 s3 存储桶子文件夹获取文件

    我正在尝试从亚马逊 S3 存储桶子文件夹中获取所有文件 并使它们可以在网页中下载 我有一个名为图像的桶 在那个桶里我还有一些其他文件夹 现在我试图获取该子文件夹内的所有文件并将其显示在页面中 S3 桶 图片 图像 测试1 图像 测试2 图像
  • SQL 声明变量

    谁能看一下我的发言 DECLARE tblName varchar MAX strSQL varchar MAX SET tblName SELECT DISTINCT o name as TableName FROM sysobjects
  • 如何将 SQL Server 2005 数据传输或导出到 Excel

    我有一个简单的 SQL 选择 查询 我想将结果转储到 Excel 文件中 我只能另存为 csv 并转换为 xls 会产生一些超级丑陋的输出 无论如何 据我所知 使用谷歌 这似乎并不那么简单 任何帮助将不胜感激 SSIS 做这样的事情是轻而易
  • 如何更改 NsdManager 使用的 Android 设备名称?

    我正在使用 NsdManager 在本地网络上注册 Web 服务 我的问题是设备名称称为 android 因此我可以从笔记本电脑上以 android local 身份访问手机 我怎样才能改变这个名字 我想要一些更独特的东西 您无法更改此设置
  • 使用 www::mechanize 时的 Iconv::IllegalSequence

    我正在尝试做一些网络抓取 但 WWW Mechanize gem 似乎不喜欢编码并且崩溃 post 请求导致 302 重定向 机械化遵循 到目前为止一切顺利 并且生成的页面似乎使其崩溃 我用谷歌搜索了很多 但到目前为止还没有找到如何解决这个
  • 如何更改 QPlainTextEdit 中选项卡的宽度

    When using the QPlaintextEdit in PyQt5 if I press the Tab button on my keyboard I get a tab space which is equal to size