Пример #1
0
    def plot(self):
        #時間がキーで、その時間にアナウンスされたエッジ全て(重み集計なし)
        f = open("../data/pickles/%s" % announceFile, "rb")
        self.announce = pickle.load(f)

        f = open("../data/pickles/%s" % withdrawFile, "rb")
        self.withdraw = pickle.load(f)
        timeRangeFrom = "0802241824"
        timeRangeTo = "0802241923"
        startDate = timeRangeFrom[:len(timeRangeFrom) - 4]
        startMin = int(timeRangeFrom[len(timeRangeFrom) - 2:])  #下2桁
        startHour = int(timeRangeFrom[len(timeRangeFrom) -
                                      4:len(timeRangeFrom) - 2])  #下4桁〜下2桁
        # withdrawならそのまま
        for i in range(timeRange):
            min = i + startMin  #時間繰り上げなしの分カウント
            if min > 59:
                currentMin = min % 60
                if currentMin < 10:
                    strMin = "0" + str(currentMin)  #"00 ~ 09"
                else:
                    strMin = str(currentMin)  #"10 ~ 59"
            else:
                strMin = str(min)
            hour = min // 60
            currentHour = startHour + hour
            strHour = str(currentHour)
            time = startDate + strHour + strMin
            print(time)
            value = math.log(len(self.announce[time]), 1.1)

            announcebar = QGraphicsRectItem(i * barWidth, 200, barWidth,
                                            -value)
            announcebar.setPen(announcebarPen)
            announcebar.setBrush(announcebarBrush)
            announcebar.setFlags(QGraphicsItem.ItemIsSelectable)
            self.plotScene.addItem(announcebar)
            withdrawbar = QGraphicsRectItem(i * barWidth, 200, barWidth, value)
            withdrawbar.setPen(withdrawbarPen)
            withdrawbar.setBrush(withdrawbarBrush)
            withdrawbar.setFlags(QGraphicsItem.ItemIsSelectable)
            self.plotScene.addItem(withdrawbar)
        vertivalCenter = self.height / 2
        horizontalCenter = self.width / 2
Пример #2
0
    def on_actItem_Rect(self):  # 添加一个矩形  _triggered
        rect = QRectF(-50, -25, 100, 50)
        item = QGraphicsRectItem(rect)  # x,y 为左上角的图元局部坐标,图元中心点为0,0
        item.rect = rect
        item.setFlags(QGraphicsItem.ItemIsMovable | QGraphicsItem.ItemIsSelectable | QGraphicsItem.ItemIsFocusable)
        item.brush = Qt.yellow
        item.setBrush(QBrush(item.brush))
        item.style = Qt.SolidLine
        #item.setTransform(QTransform())
        self.view.frontZ = self.view.frontZ + 1
        item.setZValue(self.view.frontZ)
        item.setPos(-50 + (QtCore.qrand() % 100), -50 + (QtCore.qrand() % 100))
        self.view.seqNum = self.view.seqNum + 1
        item.setData(self.view.ItemId, self.view.seqNum)
        item.setData(self.view.ItemDesciption, "矩形")

        self.scene.addItem(item)
        self.scene.clearSelection()
        item.setSelected(True)
Пример #3
0
 def __init__(self):
     super(MainWindow, self).__init__()
     self.resize(600, 400)
     self.view = QMyGraphicsView()  # 创建视图窗口
     self.setCentralWidget(self.view)  # 设置中央控件
     self.statusbar = self.statusBar()  # 添加状态栏
     self.labviewcorrd = QLabel('view坐标:')
     self.labviewcorrd.setMinimumWidth(150)
     self.statusbar.addWidget(self.labviewcorrd)
     self.labscenecorrd = QLabel('scene坐标:')
     self.labscenecorrd.setMinimumWidth(150)
     self.statusbar.addWidget(self.labscenecorrd)
     self.labitemcorrd = QLabel('item坐标:')
     self.labitemcorrd.setMinimumWidth(150)
     self.statusbar.addWidget(self.labitemcorrd)
     rect = QRectF(-200, -100, 400, 200)
     self.scene = QGraphicsScene(rect)  # 创建场景
     # 参数:场景区域
     # 场景坐标原点默认在场景中心---场景中心位于界面中心
     self.view.setScene(self.scene)  # 给视图窗口设置场景
     item1 = QGraphicsRectItem(rect)  # 创建矩形---以场景为坐标
     item1.setFlags(QGraphicsItem.ItemIsSelectable
                    | QGraphicsItem.ItemIsFocusable
                    | QGraphicsItem.ItemIsMovable)  # 给图元设置标志
     # QGraphicsItem.ItemIsSelectable---可选择
     # QGraphicsItem.ItemIsFocusable---可设置焦点
     # QGraphicsItem.ItemIsMovable---可移动
     # QGraphicsItem.ItemIsPanel---
     self.scene.addItem(item1)  # 给场景添加图元
     for pos, color in zip([rect.left(), 0, rect.right()],
                           [Qt.red, Qt.yellow, Qt.blue]):
         item = QGraphicsEllipseItem(-50, -50, 100, 100)  # 创建椭圆--场景坐标
         # 参数1 参数2  矩形左上角坐标
         # 参数3 参数4 矩形的宽和高
         item.setPos(pos, 0)  # 给图元设置在场景中的坐标(移动图元)--图元中心坐标
         item.setBrush(color)  # 设置画刷
         item.setFlags(QGraphicsItem.ItemIsSelectable
                       | QGraphicsItem.ItemIsFocusable
                       | QGraphicsItem.ItemIsMovable)
         self.scene.addItem(item)
     self.scene.clearSelection()  # 【清除选择】
     self.view.sigMouseMovePoint.connect(self.slotMouseMovePoint)