我使用QLabel向用户显示更大,动态变化的QPixmap的内容.根据可用空间,使这个标签更小/更大会很好.屏幕尺寸并不总是与QPixmap一样大.
如何修改QLabel QSizePolicy和sizeHint()QLabel以调整QPixmap的大小,同时保持原始QPixmap的宽高比?
我无法修改sizeHint()QLabel,设置minimumSize()为零无济于事.hasScaledContents()QLabel上的设置允许增长,但是打破了宽高比...
子类化QLabel确实有帮助,但是这个解决方案只为一个简单的问题添加了太多的代码......
任何聪明的提示如何在没有子类化的情况下完成此任务?
例如,我们将QLabelMaximumWidth设置为400.
当我们尝试显示一些像素宽度超过400的文本时,它显示为截止.
有没有办法让QLabel在不使用QFontMetrics之类的情况下以多行显示此字符串?
我在一个小部件中有一个QLabel元素,可以调整大小.文本可以溢出边界,所以我需要,为了使应用程序看起来更优雅,某些方法使文本在文本中最后一个完全可见的单词之后生成省略号(...).
在HTML/CSS中制作布局我以前用过text-overflow: ellipsis;这个,但是对于QT类我没有找到任何关于此的信息.
我在qwidget中有一个qlabel L.L垂直和水平对齐.当我调整W时,L不会居中.
这是预期的吗?让L再次居中的好方法是什么?
我有一个固定宽度的QLabel.
我需要(定期)检查整个字符串是否适合当前宽度的QLabel内部,因此我可以适当调整它的大小.
为此,我需要获取字符串的"像素长度".
(显示字符串所需的水平像素总数).
应该注意的是,QLabel的点大小永远不会改变.

我不能简单地检查存在的字符数量,因为有些字符是下标/上标,并且对整个字符串的宽度有不同的贡献.
(这就是说像素宽度和字符数量之间没有简单的关系)
这有什么抽象的,超级便利的功能吗?
规格:
Python 2.7.1
PyQt4
Windows 7
我有一个QLabelQt样式表设置一个深色背景:
QLabel {
background: black;
color: white;
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,直到我添加带有嵌入URL的文本并设置Qt::TextFormat为Qt::RichText.链接显示为默认深蓝色,在深色背景上难以阅读.
我试过通过样式表来定制它,例如:
a { color: white; }
QLabel!visited { color: white; }
Run Code Online (Sandbox Code Playgroud)
但这没有任何效果.似乎有用的一件事是更改应用程序QPalette:
QPalette newPal(qApp->palette());
newPal.setColor(QPalette::Link, Qt::white);
newPal.setColor(QPalette::LinkVisited, Qt::white);
qApp->setPalette(newPal);
Run Code Online (Sandbox Code Playgroud)
然而,这需要对颜色进行硬编码.我有什么方法可以设置样式表的颜色吗?
编辑:
我发现了自定义调色板的另一个问题.如果我想只需要修改我的窗口小部件的调色板(替换widget为qApp样本上面),那么这是行不通的.我不想影响QLabels应用程序中的所有其他内容,因此如何限制此窗口小部件的调色板更改?
我想点击一下这个应用程序中的链接:

当我点击"输出文件"链接时,我希望能够在我的应用程序中生成一个动作.
截至今天,链接在富文本QLabel中描述如下:
<a href="http://google.fr"><span style=" text-decoration: underline; color:#0000ff;">Output File"</span></a>
Run Code Online (Sandbox Code Playgroud)
(由Qt Designer生成)
点击后,它会打开默认的网络浏览器以转到Google.那不是我想要的; 我喜欢这样的东西:
<a href="#browse_output"><span style=" text-decoration: underline; color:#0000ff;">Output File"</span></a>
Run Code Online (Sandbox Code Playgroud)
并能够检测到点击的链接并做出相应的反应:
(pseudo code)
if( link_clicked.toString() == "#browse_output" ){
on_browse_output_clicked();
}
Run Code Online (Sandbox Code Playgroud)
Qt中是否可以使用QLabel(或接近某些东西)?怎么样?
这可能是一个简单的问题,但我试图在我的应用程序中为特定的QLabel赋予颜色,但它不起作用.
我尝试的代码如下:
nom_plan_label = QtGui.QLabel()
nom_plan_label.setText(nom_plan_vignette)
nom_plan_label.setStyleSheet("QLabel#nom_plan_label {color: yellow}")
Run Code Online (Sandbox Code Playgroud)
任何提示都将不胜感激
我试图在Qt Designer中默认不显示QLabel.我可以硬编码,但我想知道是否有办法使用设计师设置它.
m_uiForm.aLabel->setVisible(false);
Run Code Online (Sandbox Code Playgroud) qlabel ×10
qt ×8
c++ ×2
pyqt ×2
pyqt4 ×2
python ×2
qt4 ×2
centering ×1
css3 ×1
hyperlink ×1
layout ×1
qt-designer ×1
stylesheet ×1
text-styling ×1
width ×1