【发布时间】:2021-10-15 18:40:46
【问题描述】:
假设我有这个标签
text = QtWidgets.QLabel("Hello World")
现在我想在 100、90 的坐标处显示这个标签,这意味着我希望它在该坐标处的左上角最像素。我该怎么做?
我已经尝试过使用缩进,但它似乎将对象在 x 和 y 方向上都推了 100 像素
text = QtWidgets.QLabel("Hello World", indent = 100)
有没有类似的
text.exec(QtCore.QPoint(100, 90))
额外信息:这个例子是在 PySide 文档中给出的
import sys
import random
from PySide6 import QtCore, QtWidgets, QtGui
class MyWidget(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.hello = ["Hallo Welt", "Hei maailma", "Hola Mundo", "Привет мир"]
self.button = QtWidgets.QPushButton("File")
self.text = QtWidgets.QLabel("Hello World")
self.layout = QtWidgets.QVBoxLayout(self)
self.layout.addWidget(self.text)
self.layout.addWidget(self.button)
self.button.clicked.connect(self.magic)
@QtCore.Slot()
def magic(self):
self.text.setText(random.choice(self.hello))
if __name__ == "__main__":
app = QtWidgets.QApplication([])
widget = MyWidget()
widget.resize(800, 600)
widget.show()
sys.exit(app.exec())
【问题讨论】:
-
@musicamante 我提供的所有信息是标题不足以传达吗?我不知道要添加什么额外内容。我只想在特定坐标处显示标签,而不是通过对齐或缩进来显示它。我的问题没有解释吗?
-
这还不够,对不起。例如,标签是否添加到“父”小部件/窗口?它是布局的一部分吗?或者它是一个独立的小部件(又名顶级窗口)?请求的坐标是基于父级,还是相对于窗口的绝对位置,还是基于用于它的布局项?如果它是布局的一部分,标签是否应该在调整父级大小时考虑“边距”,以确保在调整父级大小时它不会部分隐藏?如您所见,您的问题有很多方面没有考虑,这就是为什么我们要求您添加更多详细信息。
-
@musicamante 我用你想要的信息编辑了它
-
我现在不能直接测试,但是在创建标签后尝试添加以下内容:
self.text.setStyleSheet('padding-left: 100px; padding-top: 90px;')