我正在使用QGridLayout和一定数量的Box对象构建一种表:
表的图像:
class Mybox(QWidget):
def __init__(self, i, *args, **kwargs):
super(Mybox, self).__init__(*args, **kwargs)
self.text = i
def paintEvent(self, event):
painter = QPainter(self)
# Rect info of the box
rect = event.rect()
# Draw peri
我已经创建了一个QGraphicsScene
scene = new QGraphicsScene(0,0,200,200);
然后画一条线scene.addLine(0,0,100,100,pen);,我正确地画出了从(0,0)到(100,100)的线。
当我将代码更改为
scene = new QGraphicsScene(0,0,150,200);
画出同一条线,x,y点向右移动50个像素。,scene.addLine(0,0,100,100,pen);,。这一切为什么要发生?如何避免这种情况?
我试图通过检查button1的大小并将button2的大小设置为匹配来将button1的大小匹配到button2,但是button1上的size()返回不正确的值(640,480),除非我先将其show()。但是,如果我在设置好布局之前显示它,它会在随后的代码运行时在屏幕上闪烁,这是我不想要的。
我怎么才能避开这一切?
下面是一个很小的例子:
import sys
from PyQt5 import QtWidgets
from PyQt5.QtCore import QSize
import random
class MyButton(QtWidgets.QPushButton):
我想要一个QLineEdit不显示输入的文本,而是一个经过处理的版本,同时保留原始文本并在通过text()请求时返回它。就像密码回显模式一样,但我不希望每个字符都被屏蔽。我想通过空间来实现: 例如,当输入some text with spaces in between时,应该显示some·text·with·spaces·in·between,以便用户可以看到空格。例如,当您在LibreOffice中激活²符号时。 有QLineEdit::displayText(),但不能设置,只能设置为read。此外,echoMode只能通过枚举设置,并且使用EchoMode::Password设置时,处