프로젝트

일반

사용자정보

개정판 a7a99841

IDa7a99841e4e61b3d0694b03cff312ae8f27591c8
상위 44a14efb
하위 70482f50

함의성이(가) 12달 전에 추가함

text size test

Change-Id: I0bdc94ec873cba0dfdb969450a21bb959ef01dc9

차이점 보기:

DTI_PID/DTI_PID/Shapes/EngineeringTextItem.py
337 337

  
338 338
            self.moveText(1, 0, delta)
339 339
        elif event.key() == Qt.Key_Plus or event.key() == 61:
340
            allowed_error = 0.01
340 341
            modifiers = QApplication.keyboardModifiers()
341
            delta = False if modifiers == Qt.ControlModifier else True
342
            delta = False if modifiers != Qt.ControlModifier else True
342 343
            if delta:
343
                self.size[0] = self.size[0] + 5
344
            else:
345 344
                self.size[1] = self.size[1] + 5
345
                if abs(self.angle - 1.57) < allowed_error or abs(self.angle - 3.14) < allowed_error:
346
                    self.loc[1] = self.loc[1] - 5
347
                    #self.moveText(0, 1, 5)
348
            else:
349
                self.size[0] = self.size[0] + 5
350
                if abs(self.angle - 4.71) < allowed_error or abs(self.angle - 4.71) < allowed_error or abs(self.angle - 3.14) < allowed_error:
351
                    self.loc[0] = self.loc[0] - 5
352
                    #self.moveText(1, 0, 5)
353

  
346 354
            self.update()
355
            self.update_font()
347 356
        elif event.key() == Qt.Key_Minus:
357
            allowed_error = 0.01
348 358
            modifiers = QApplication.keyboardModifiers()
349
            delta = False if modifiers == Qt.ControlModifier else True
359
            delta = False if modifiers != Qt.ControlModifier else True
350 360
            if delta:
351
                self.size[0] = self.size[0] - 5
361
                if self.size[1] - 5 > 10:
362
                    self.size[1] = self.size[1] - 5
363
                    if abs(self.angle - 1.57) < allowed_error or abs(self.angle - 3.14) < allowed_error:
364
                        self.loc[1] = self.loc[1] + 5
365
                        #self.moveText(0, -1, 5)
352 366
            else:
353
                self.size[1] = self.size[1] - 5
367
                if self.size[0] - 5 > 10:
368
                    self.size[0] = self.size[0] - 5
369
                    if abs(self.angle - 4.71) < allowed_error or abs(self.angle - 4.71) < allowed_error or abs(self.angle - 3.14) < allowed_error:
370
                        self.loc[0] = self.loc[0] + 5
371
                        #self.moveText(-1, 0, 5)
372
            self.update_font()
354 373
            self.update()
355 374
        elif event.key() == Qt.Key_M:
356 375
            from App import App
......
624 643
            text_width = max(QFontMetricsF(font).width(_text), text_width)
625 644

  
626 645
        return text_width
646
    
647
    def update_font(self):
648
        app_doc_data = AppDocData.instance()
649
        configs = app_doc_data.getConfigs('Text Style', 'Font Name')
650
        fontName = configs[0].value if configs else 'Arial'
651
        configs = app_doc_data.getConfigs('Text Style', 'Font Size')
652
        fontSize = int(configs[0].value) if configs else -1
653

  
654
        width = self.size[0]
655
        height = self.size[1]
656

  
657
        allowed_error = 0.01
658
        if abs(self.angle - 1.57) < allowed_error or abs(self.angle - 4.71) < allowed_error:
659
            font = QFont(fontName, width if fontSize == -1 else fontSize)
660
            font.setBold(True)
661

  
662
            x_factor = width / QFontMetricsF(font).height() #self.text()).height() / line_count)
663
            y_factor = height / self.text_width(font)
664
            factor = min(x_factor, y_factor)
665
            font.setPointSizeF(font.pointSizeF() * factor)
666
            self.setFont(font)
667
        elif abs(self.angle - 3.14) < allowed_error:
668
            font = QFont(fontName, height if fontSize == -1 else fontSize)
669
            font.setBold(True)
670

  
671
            x_factor = width / self.text_width(font)
672
            y_factor = height / QFontMetricsF(font).height() #self.text()).height() / line_count)
673
            factor = min(x_factor, y_factor)
674
            font.setPointSizeF(font.pointSizeF() * factor)
675
            self.setFont(font)
676
        else:
677
            font = QFont(fontName, height if fontSize == -1 else fontSize)
678
            font.setBold(True)
679

  
680
            x_factor = width / self.text_width(font)
681
            y_factor = height / QFontMetricsF(font).height() #.boun(self.text()).height() / line_count)
682
            factor = min(x_factor, y_factor)
683
            font.setPointSizeF(font.pointSizeF() * factor)
684
            self.setFont(font)
627 685

  
628 686
    def update_shape(self):
629 687
        """update text shape"""

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)