与 QLabel 和 QLineEdit 中的右侧文本对齐

2023-11-22

我有一个QLabel就在下面一个QLineEdit具有相同的尺寸和对齐属性:

QLineEdit *lineEdit = new QLineEdit("999");
lineEdit->setFixedWidth(100);
lineEdit->setAlignment(Qt::AlignRight);
//
QLabel *label = new QLabel("999");
label->setFixedWidth(100);
label->setAlignment(Qt::AlignRight);
//
QLayout *layout = new QVBoxLayout;
layout->addWidget(lineEdit);
layout->addWidget(label);

下面是它的渲染方式:

enter image description here

我怎样才能有底部的文字label与文本完全右对齐lineEdit?

全奖如果您找到适用于所有平台的解决方案,并且在字体大小不同的情况下也适用lineEdit and label.


不幸的是,这可能是不可能的,至少不是开箱即用的,右边距将不起作用,因为即使文本明显向左偏移,它也始终为 0。原因是这个偏移量不是由边距决定的,而是取决于平台 GUI 样式和正在使用的特定字体度量的组合,并且它的值“方便地”在类公共接口中不可用,没有办法去实现它。

您可以轻松获取字体规格,但无法获取QStyleOptionFrame由于所需的方法是受保护的,访问它需要子类化QLineEdit。但是,如果幸运的话,该值很可能为零,因此您可以采用如下简单的方法:

  QVBoxLayout *layout = new QVBoxLayout;
  QLineEdit *lineEdit = new QLineEdit("999");
  lineEdit->setAlignment(Qt::AlignRight);
  QLabel *label = new QLabel("999");
  label->setAlignment(Qt::AlignRight);

  int offsetValue = lineEdit->fontMetrics().averageCharWidth();
  label->setIndent(offsetValue);

  setLayout(layout);
  layout->addWidget(lineEdit);
  layout->addWidget(label);

如果这对你来说不能正常工作,你将别无选择,只能子类化QLineEdit,仔细检查其绘制事件,确定计算偏移量的位置,并将该值存储在公共成员中,以便可以从外部访问它以用于偏移标签。

我个人对这段代码很幸运:

enter image description here

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

与 QLabel 和 QLineEdit 中的右侧文本对齐 的相关文章

  • 将列表数组中的值绑定到列表框

    任何机构都可以给出一个简短的示例 用于将列表数组中的值绑定到 c net 中的列表框 这取决于您的列表数组的情况 让我们从一个简单的示例开始 List
  • 在 C++ 中,std::string::push_back() 的摊余复杂度是 O(1) 吗?

    我知道标准指定它适用于向量 但是字符串呢 是的 它是摊销常数时间 请参见第 716 页的表 101本文件的 http www open std org jtc1 sc22 wg21 docs papers 2012 n3485 pdf 表
  • 如何将异常对象序列化为 xml 字符串

    我想要类似的东西 try code here catch Exception ex stringXML Exception toXML 这样 stringXML 的值就是
  • Windows 10 UWP 中的视觉状态管理器未在页面加载时应用初始状态

    我有一个带有相关面板的页面 可以根据宽度重新组织 但是 除非宽度 gt 720px 否则它似乎不会在加载时应用任何状态 如果我在加载页面后调整页面大小 则两种状态都有效 解决方法是检查加载页面上的窗口大小并手动选择状态 但我相信这应该自动处
  • 如何自定义 ASP.Net Core 模型绑定错误?

    我只想从我的 Web API Asp net Core 2 1 返回标准化的错误响应 但我似乎不知道如何处理模型绑定错误 该项目刚刚从 ASP NET Core Web 应用程序 gt API 模板创建 我有一个简单的操作定义为 Route
  • MSVC10 /MP 在项目中跨文件夹构建非多核

    我希望有人指出我们所遇到的错误或解决方法 使用 MP 编译项目时 似乎仅同时编译同一文件夹中的文件 我使用进程资源管理器来滑动命令行并确认行为 项目过滤器似乎对同时编译的内容没有影响 项目结构disk Folder project vcxp
  • 是否返回 std::move (x)?

    Are std vector
  • 为什么 .Net 框架指南建议您不要使用 ref/out 参数?

    显然 他们很 混乱 这是认真的原因吗 你还能想到其他的吗 你见过有多少开发人员并不真正理解 ref out 吗 我在真正需要的地方使用它们 但在其他地方则不然 它们通常仅在您想有效返回两个或多个值时才有用 在这种情况下它至少值得thinki
  • 在 Windows 上静默安装 Qt55 Enterprise

    编辑 在 Qt 支持的帮助下 我已经解决了如何自动化 Qt 企业安装程序的这两个部分 下面是脚本调用 我正在尝试在 Windows 8 1 和 Windows 10 上静默安装 Qt 5 5 1 Enterprise 使用 script 开
  • Ajax 函数在重定向后不保存滚动位置

    正如标题所述 我编写了一个 ajax 函数 该函数应该滚动到用户在重定向之前所在的位置 我写了一个alert对于测试场景 它确实触发了 但滚动不断回到顶部 我在这里做错了什么 JavaScript ajax type GET url Adm
  • 不可能的事情发生了!这是什么意思?

    我遇到了一个有趣的运行时错误 我认为这是某种内存泄漏 我写了以下程序 C Code include
  • 为什么 C++20 范围不只提供管道语法?

    我知道这个问题听起来很奇怪 所以这里有一些背景信息 最近 我很失望地了解到 C 20 范围内的映射缩减并不像人们所期望的那样工作 即 const double val data transform accumulate 不起作用 你必须这样
  • 函数中的重复参数检查

    我经常有调用层次结构 因为所有方法都需要相同的参数 如果我不想将它们放在实例级别 类的成员 那么我总是问我在每个方法中检查它们的有效性是否有意义 例如 public void MethodA object o if null o throw
  • 如何明智地解释这个编译器警告?

    当我执行这段代码时question https stackoverflow com a 51056490 2411320 我收到这个警告 warning format d expects argument of type int but a
  • 更改成员资格、角色等的默认连接字符串

    默认情况下 我的网络应用程序似乎正在使用LocalSqlServer作为用于任何应用程序服务 例如成员资格 角色 身份验证 等 的连接字符串 有什么方法可以更改默认连接字符串应该是什么 默认值是 LocalSqlServer 似乎很随意 我
  • 不兼容的指针到字符转换

    我正在编写一个程序 将卡片值写入 52 个点字符的多维数组中 该程序是一个测试数组 稍后我将其作为函数写入主程序中 在程序中 我通过以下方式初始化 for 循环计数0通过51 我用一个switch语句调制13将卡牌值分配给数组点 但是 我收
  • 您的 C++ 程序中是否仍然存在内存分配失败问题 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在为公司写一些指导方针 我需要回答一些棘手的问题 这一项是相当困难的 解决方案可以是 根本不跟踪 确保使用 new 分配对象 这会在分配失败
  • C# 中的快速字符串解析

    在 C 中解析字符串最快的方法是什么 目前我只是使用字符串索引 string index 并且代码运行合理 但我忍不住认为索引访问器所做的连续范围检查必须添加一些东西 所以 我想知道我应该考虑哪些技术来增强它 这些是我最初的想法 问题 使用
  • 使用 Crypto++ 和 .NET 的 CFB 模式下的 TripleDES

    我正在尝试使用 TripleDES 使用 C 应用程序获得相同的结果 该应用程序具有Crypto https www cryptopp com 和 NET应用程序使用三重DESCryptoServiceProvider https msdn
  • 频繁插入已排序的集合

    我已经对集合 列表 进行了排序 并且我需要始终保持其排序 我目前在我的集合上使用 List BinarySearch 然后在正确的位置插入元素 我也尝试过在每次插入后对列表进行排序 但性能不可接受 有没有一种解决方案可以提供更好的性能 也许

随机推荐

  • Matlab 的 Demcmap 的 Python 等效项(海拔 +/- 适当的颜色图)

    我正在寻找一种方法来获得适当的海拔颜色图matplotlib 的cmap terrain 看起来很棒 但颜色缩放不是基于零 即 如果比例为 0 gt 5000m 则 0 gt 1000m 范围可能是蓝色阴影 您会认为这是海平面以下的情况 f
  • 如何使表格单元格的背景透明

    我正在为我的 所有用户 页面创建一个表 第一个表分为两部分 广告和用户 在 用户 表内 tr td td tr 我为每个用户的数据创建了另一个表以通过 php 显示 这是图片 http postimg org image 3mbeyb411
  • c中的“short int”和“short”有什么区别? [复制]

    这个问题在这里已经有答案了 将变量声明为short int 和short 有什么区别 在gcc编译器中 short占用2个字节 用sizeof short 检查 并且short int也给出了2个字节的大小 两者是否相同或不同 在这种情况下
  • 如何在 JavaScript 中获取 HTML 元素的样式值?

    我正在寻找一种方法 从通过样式标签设置样式的元素中检索样式 在身体里 div div 我正在寻找不使用库的直接 JavaScript 我尝试了以下操作 但一直收到空白 alert document getElementById box st
  • 如何从子例程中不返回任何内容?

    我想在执行下一步之前验证一个条件 但只发出警告并跳过当前值而不是死掉 如何重写 validate me 子例程而不返回任何值 Update 请注意 以下代码按预期工作 只是我想要其他东西 而不是从 validate me 返回 1 或 0
  • 保存图像,然后在 Swift (iOS) 中加载它

    我正在使用 saveImage 保存图像 func saveImage image UIImage path String gt Bool let pngImageData UIImagePNGRepresentation image le
  • d3.js 构建矩形网格

    我正在尝试在 d3 js 中构建一个矩形网格 网格有 7 行 一周中的几天 和 24 列 一天中的小时 以下代码仅绘制 行 列 天0 小时0 第 1 天 1 小时 第 2 天 第 2 小时 第 3 天 第 3 小时 第 4 天 第 4 小时
  • R 分组显示所有因子水平的计数,即使 dplyr 为零

    set seed 1 dat lt data frame ID sample letters 50 rep TRUE dat gt group by ID gt summarise no rows length ID 我有上面的代码 它创建
  • 了解 Java 内存模型和垃圾收集 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我经常会收到很多学生或寻找
  • 从 GCE VM 分离启动磁盘

    我正在尝试从 GCE 虚拟机分离启动磁盘 由于虚拟机已停止 因此它应该允许我将其分离 但它返回此错误 UNSUPPORTED OPERATION Hot remove of the root disk is not supported 有什
  • 如何只加载最后一个分区的数据

    我有一些数据是这样分区的 data year 2016 month 9 version 0 data year 2016 month 10 version 0 data year 2016 month 10 version 1 data y
  • 以编程方式实例化 Sharepoint 中的 Web 部件页面

    是否有一种简单的方法可以使用对象模型或 Web 服务以编程方式将 Web 部件页面添加到 Sharepoint 站点 以这种方式创建列表和添加 Web 部件似乎很简单 但我找不到如何创建内容页面的示例 编辑 对于普通的 WSS 安装 不是
  • Java 中的加权线性回归

    有谁知道 Java 中的科学 数学库可以直接实现加权线性回归吗 类似于接受 3 个参数并返回相应系数的函数 linearRegression x y weights 这看起来相当简单 所以我想它存在于某个地方 PS 我尝试过弗兰尼根的图书馆
  • 将 12 小时日期/时间转换为 24 小时日期/时间

    我有一个制表符分隔文件 其中每条记录都有一个 12 小时格式的时间戳字段 月 日 年 时 分 秒 AM PM 我需要快速将这些字段转换为 24 小时时间 月 日 年 HH mm ss 最好的方法是什么 我在 Windows 平台上运行 但除
  • 既然延迟已从反应导航中删除,如何“延迟加载”选项卡导航器屏幕

    React navigation 的维护者已从库中删除了 lazy true 导致所有选项卡尝试立即渲染 并获取先前由 lazy 控制的内容 现在乱序触发 为了保持类似的功能 如何强制在选项卡屏幕上等待 以便在第一次获得焦点之前不加载或调用
  • 如何使用 ITranscriptLogger 和 TranscriptLoggerMiddleware 在 cosmos DB 中存储聊天记录

    我想使用 ITranscriptLogger 和 TranscriptMiddelWare 将整个聊天历史记录存储在 cosmos DB 中 但我很难做到这一点 我读过了这篇 MS 文章 但我想将其存储在 Cosmos DB 中而不是 Bl
  • 有兴趣制作一个 PHP 脚本,将 IP 地址从定义的起始地址递增到定义的结束地址

    我知道我可以通过首先使用 PHP 内置函数将 IP 地址转换为十进制表示法来轻松做到这一点up2long and long2ip 我只是希望能够使用标准 IP 地址表示法做同样的事情作为练习 我想的问题是这样的 给定一个起始IP地址 比如1
  • 可以不使用括号调用单参数Python函数吗? [复制]

    这个问题在这里已经有答案了 Python 文档指定 如果函数仅采用单个参数 则省略括号是合法的 但是 myfunction Hello 产生语法错误 那么 到底是怎么回事呢 EDIT 我读到的声明仅适用于生成器表达式 在只有一个参数的调用中
  • grep 自动忽略文件

    有什么方法可以使用 grep 在搜索某些内容时忽略某些文件 相当于 svnignore 或 gitignore 吗 我在搜索源代码时通常使用类似的东西 grep r something grep v ignore file1 grep v
  • 与 QLabel 和 QLineEdit 中的右侧文本对齐

    我有一个QLabel就在下面一个QLineEdit具有相同的尺寸和对齐属性 QLineEdit lineEdit new QLineEdit 999 lineEdit gt setFixedWidth 100 lineEdit gt set