热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python中fontsize_在PyQ中同步标签fontsize和布局

这包含在resizeEvent方法的重新实现中,QLabel的字体大小根据其contentRect的大小进行更新。注意,Qlabel的sizePolic

这包含在resizeEvent方法的重新实现中,QLabel的字体大小根据其contentRect的大小进行更新。注意,Qlabel的sizePolicy必须设置为Ignored,这样才能正常工作。在import sys

from PyQt4 import QtGui

class myQLabel(QtGui.QLabel):

def __init__(self, *args, **kargs):

super(myQLabel, self).__init__(*args, **kargs)

self.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Ignored,

QtGui.QSizePolicy.Ignored))

self.setMinSize(14)

def setMinSize(self, minfs):

f = self.font()

f.setPixelSize(minfs)

br = QtGui.QFontMetrics(f).boundingRect(self.text())

self.setMinimumSize(br.width(), br.height())

def resizeEvent(self, event):

super(myQLabel, self).resizeEvent(event)

if not self.text():

return

# - fetch current parameters

f = self.font()

cr = self.contentsRect()

# - find the font size that fits the contentsRect -

fs = 1

while True:

f.setPixelSize(fs)

br = QtGui.QFontMetrics(f).boundingRect(self.text())

if br.height() <&#61; cr.height() and br.width() <&#61; cr.width():

fs &#43;&#61; 1

else:

f.setPixelSize(max(fs - 1, 1)) # backtrack

break

# - update font size -

self.setFont(f)

class myApplication(QtGui.QWidget):

def __init__(self, parent&#61;None):

super(myApplication, self).__init__(parent)

# Prepare a Layout

grid &#61; QtGui.QGridLayout()

for i in range(3):

grid.addWidget(myQLabel(&#39;some text&#39;), i, 0)

grid.setRowStretch(i, i&#43;1)

grid.setRowMinimumHeight(i, 25)

self.setLayout(grid)

self.resize(500, 300)

if __name__ &#61;&#61; &#39;__main__&#39;:

app &#61; QtGui.QApplication(sys.argv)

instance &#61; myApplication()

instance.show()

sys.exit(app.exec_())

结果是&#xff1a;

更新-resizeEvent优化&#xff1a;

下面是resizeEvent方法的优化版本&#xff0c;它应该可以产生更好的性能。它大大减少了寻找字体大小的最佳值所需的迭代次数。不过&#xff0c;我还没有做过广泛的测试。在

^{pr2}$



推荐阅读
  • 使用多项式拟合分析淘宝双11销售趋势
    根据天猫官方数据,2019年双11成交额达到2684亿元,再次刷新历史记录。本文通过多项式拟合方法,分析并预测未来几年的销售趋势。 ... [详细]
  • 目录预备知识导包构建数据集神经网络结构训练测试精度可视化计算模型精度损失可视化输出网络结构信息训练神经网络定义参数载入数据载入神经网络结构、损失及优化训练及测试损失、精度可视化qu ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • Python 序列图分割与可视化编程入门教程
    本文介绍了如何使用 Python 进行序列图的快速分割与可视化。通过一个实际案例,详细展示了从需求分析到代码实现的全过程。具体包括如何读取序列图数据、应用分割算法以及利用可视化库生成直观的图表,帮助非编程背景的用户也能轻松上手。 ... [详细]
  • 通过使用 `pandas` 库中的 `scatter_matrix` 函数,可以有效地绘制出多个特征之间的两两关系。该函数不仅能够生成散点图矩阵,还能通过参数如 `frame`、`alpha`、`c`、`figsize` 和 `ax` 等进行自定义设置,以满足不同的可视化需求。此外,`diagonal` 参数允许用户选择对角线上的图表类型,例如直方图或密度图,从而提供更多的数据洞察。 ... [详细]
  • 利用 Python 中的 Altair 库实现数据抖动的水平剥离分析 ... [详细]
  • JComponentJLabel的setBorder前言用例2205262241前言setBorder(Border边框)实现自JComponentjava.awt.Insets ... [详细]
  • 检查在所有可能的“?”替换中,给定的二进制字符串中是否出现子字符串“10”带 1 或 0 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 在Java项目中,当两个文件进行互相调用时出现了函数错误。具体问题出现在 `MainFrame.java` 文件中,该文件位于 `cn.javass.bookmgr` 包下,并且导入了 `java.awt.BorderLayout` 和 `java.awt.Event` 等相关类。为了确保项目的正常运行,请求提供专业的解决方案,以解决函数调用中的错误。建议从类路径、依赖关系和方法签名等方面入手,进行全面排查和调试。 ... [详细]
  • 针对图像分类任务的训练方案进行了优化设计。通过引入PyTorch等深度学习框架,利用其丰富的工具包和模块,如 `torch.nn` 和 `torch.nn.functional`,提升了模型的训练效率和分类准确性。优化方案包括数据预处理、模型架构选择和损失函数的设计等方面,旨在提高图像分类任务的整体性能。 ... [详细]
  • 本文探讨了利用Python实现高效语音识别技术的方法。通过使用先进的语音处理库和算法,本文详细介绍了如何构建一个准确且高效的语音识别系统。提供的代码示例和实验结果展示了该方法在实际应用中的优越性能。相关文件可从以下链接下载:链接:https://pan.baidu.com/s/1RWNVHuXMQleOrEi5vig_bQ,提取码:p57s。 ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 在Python中,可以通过导入 `this` 模块来优雅地展示“Python之禅”这一编程哲学。该模块会将这些指导原则以一种美观的方式输出到控制台。为了增加趣味性,可以考虑在代码中对输出内容进行简单的加密或混淆处理,以提升用户体验。 ... [详细]
  • 为什么python是动态类型语言_Python 3.7.0 面向对象的动态类型语言
    代表Python开发社区和Python3.7发布团队,我们很高兴地宣布https:www.python.orgdownloadsreleasepython-370 ... [详细]
author-avatar
一个具有骨感的女人0
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有