私は2つの問題と完全にこだわっている:PyQtは - QSliderとQGraphicsTextItemについての質問
1)私は(彼らはフロート〜0.5だいくつかの値を設定するQSliderを使用していますので、私が使用している* 1000年) 。 SingleStepとPageStepはキーボード入力とマウスホイールでうまく動作しますが、すべてのティックは設定されています...しかし、マウスを使ってスライダをドラッグすると、それらのティックやステップなどはすべて無視されます。 1つのティックを別のものにする。
self.ui.x_coord.setMaximum(l_d*1000)
self.ui.x_coord.setSingleStep(l_d/N*1000)
self.ui.x_coord.setTickInterval(l_d/N*1000)
self.ui.x_coord.setTickPosition(QtGui.QSlider.TicksBothSides)
self.ui.x_coord.setPageStep(l_d/N * 10000)
(多分setMouseStepのようになめらか)ここに私のコードで行方不明何かありますか? QSliderの接続機能に
self.graph = BPlot(self.ui)
self.ui.x_coord.valueChanged.connect(self.setCoordLabelValue)
....
def setCoordLabelValue(self):
x = self.ui.x_coord.value()/1000
y = self.ui.y_coord.value()/1000
self.graph.setCoordText(x,y)
....
class BPlot(QtGui.QGraphicsView):
def __init__(self, ui, parent=None):
super(BPlot, self).__init__(parent)
self.scene = QtGui.QGraphicsScene()
self.ui = ui
self.coordText = QtGui.QGraphicsTextItem(None, self.scene)
self.coordText.setPlainText("123")
self.x_offset = 40
self.y_offset = 20
self.currentPoint = QtGui.QGraphicsRectItem(None, self.scene)
self.cph = 4
self.cpw = 4
def resizeEvent(self, event):
size = event.size()
def showEvent(self, event):
aw = self.viewport().width()
ah = self.viewport().height()
self.scene.setSceneRect(0,0,aw,ah)
self.setScene(self.scene)
self.axis_pen = QtGui.QPen(QtCore.Qt.DashDotLine)
self.scene.addLine(0, 3/4*ah, aw, 3/4*ah, self.axis_pen)
self.normal_pen = QtGui.QPen(QtCore.Qt.SolidLine)
self.scene.addLine(self.x_offset, 3/4*ah - self.y_offset, aw - self.x_offset, 3/4*ah - self.y_offset)
self.currentPoint.setRect(self.x_offset - self.cpw/2, 3/4*ah - self.y_offset - self.cph/2, self.cpw, self.cph)
def setCoordText(self, x, y):
self.coordText.setPlainText(str(x) + ":" + str(y))
は問題がsetCoordTextのfuncがcoordTextを再描画しないことであることを
2)。 print(coordText.toPlainText())を使用する場合は正しい出力が得られますが、画面上に__init__の "123"が残っています
私はすでにself.scene.update )を運行なしでsetCoordTextの最後に追加します。