我使用了setprecision(8),但是当我计算asin(1)时,它返回0.017452406(10位数,而不是8位!)那里可以做什么?
答案 0 :(得分:0)
要解决十进制数字问题,您需要使用std::fixed
。
如[{3}}
中所述将str流的floatfield格式标志设置为fixed。
当floatfield设置为fixed时,使用定点表示法写入浮点值:该值用精确字段(精度)指定的小数部分中的数字精确表示,并且没有指数部分。
答案 1 :(得分:0)
要从评论中回答您的要求:"我需要使数字(整数和小数部分)以最多8位数显示。"您可以使用documentation。
QGraphicsView
输出
class Widget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.btn = QPushButton("Add Line")
self.gv = QGraphicsView()
self.scene = QGraphicsScene(self)
self.gv.setScene(self.scene)
self.gv.setRenderHints(QPainter.Antialiasing | QPainter.SmoothPixmapTransform)
lay = QHBoxLayout(self)
lay.addWidget(self.btn)
lay.addWidget(self.gv)
script_dir = sys.path[0]
image_loc = os.path.dirname(script_dir) + '/testproject/configs/files/lena.png'
print(image_loc)
#self.p_item = self.scene.addPixmap(QPixmap("lena.png"))
self.p_item = self.scene.addPixmap(QPixmap(image_loc))
self.btn.clicked.connect(self.add_line)
self.gv.viewport().installEventFilter(self) # <----
def add_line(self, event):
import pprint
print(pprint.pprint(dir(event)))
def eventFilter(self, obj, event):
if obj is self.gv.viewport():
if event.type() == QEvent.MouseButtonPress:
print('mouse press event = ', event.pos())
elif event.type() == QEvent.MouseButtonRelease:
print('mouse release event = ', event.pos())
return QWidget.eventFilter(self, obj, event)