热门标签 | 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}$



推荐阅读
  • 解决python matplotlib画水平直线的问题
    本文介绍了在使用python的matplotlib库画水平直线时可能遇到的问题,并提供了解决方法。通过导入numpy和matplotlib.pyplot模块,设置绘图对象的宽度和高度,以及使用plot函数绘制水平直线,可以解决该问题。 ... [详细]
  • 我用Tkinter制作了一个图形用户界面,有两个主按钮:“开始”和“停止”。请您就如何使用“停止”按钮终止“开始”按钮为以下代码调用的已运行功能提供建议 ... [详细]
  • 人脸检测 pyqt+opencv+dlib
    一、实验目标绘制PyQT界面,调用摄像头显示人脸信息。在界面中,用户通过点击不同的按键可以实现多种功能:打开和关闭摄像头, ... [详细]
  • 当我在doWork方法中运行代码时,通过单击button1,进度条按预期工作.但是,当我从其他方法(即btn2,btn3)将列表传递给doWork方法时,进度条在启动后会跳转到10 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • 本文介绍了利用ARMA模型对平稳非白噪声序列进行建模的步骤及代码实现。首先对观察值序列进行样本自相关系数和样本偏自相关系数的计算,然后根据这些系数的性质选择适当的ARMA模型进行拟合,并估计模型中的位置参数。接着进行模型的有效性检验,如果不通过则重新选择模型再拟合,如果通过则进行模型优化。最后利用拟合模型预测序列的未来走势。文章还介绍了绘制时序图、平稳性检验、白噪声检验、确定ARMA阶数和预测未来走势的代码实现。 ... [详细]
  • 属性字符串NSMutableAttributedString
    要实现如下效果:NSString*mailStringmymail126.com;NSString*mailStringWithQuotes[NSStringst ... [详细]
  • pythonMatplotlib(二)
    Matplotlib+pandas作图一、对csv文件进行提取ruixi.csv对上述表格进行提取并做图画出图像二、对.xlsx进行提取:rui ... [详细]
  • 动量|收益率_基于MT策略的实战分析
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了基于MT策略的实战分析相关的知识,希望对你有一定的参考价值。基于MT策略的实战分析 ... [详细]
  • plt python 画直线_机器学习干货,一步一步通过Python实现梯度下降的学习
    GradientDescent-梯度下降梯度下降法(英语:Gradientdescent)是一个一阶最优化算法,通常也称为最速下降法。要使用梯度下降法找 ... [详细]
  • 湍流|低频_youcans 的 OpenCV 例程 200 篇106. 退化图像的逆滤波
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了youcans的OpenCV例程200篇106.退化图像的逆滤波相关的知识,希望对你有一定的参考价值。 ... [详细]
  • keras归一化激活函数dropout
    激活函数:1.softmax函数在多分类中常用的激活函数,是基于逻辑回归的,常用在输出一层,将输出压缩在0~1之间,且保证所有元素和为1,表示输入值属于每个输出值的概率大小2、Si ... [详细]
  • Highcharts翻译系列之二十:曲线图例子(二)
    Highcharts翻译系列之二十:曲线图例子(二)代码 ... [详细]
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社区 版权所有