QString을 QImage 객체에 페인팅하는 동안 정렬 문제

토마스 루드 니키

화면에 인쇄 할 문자열을 만들고 싶습니다. 인쇄 된 변수의 값이 변경 될 때마다이 문자열을 업데이트합니다. 각 숫자의 자릿수는 다를 수 있으며 각 숫자의 부호는 시간에 따라 변경 될 수 있습니다. 내가 일정하고 싶은 것은 숫자의 정밀도입니다. 내가 기대하는 출력은 다음과 같이 sth입니다 (각 줄은 동일한 문자열에 해당하며 업데이트 만 있음).

X:  453.432  Y:  543.432
X:   -5.432  Y:    4.432
X:   43.234  Y: -123.423

즉, 글자와 점은 항상 화면에서 같은 위치에 있어야합니다.

현재이 코드를 문자열 업데이트에 사용하지만 자릿수가 변경되면 Y와 점의 위치가 달라집니다. 그것을 구현하는 간단한 방법이 있습니까?

text = QString("X: %1   Y: %2").arg( QString::number( x(), 'f', 3 ),
                                     QString::number( y(), 'f', 3 ) );

------------------ 편집하다 ------------------

대답에 따라 일정한 간격으로 문자열을 만들었습니다 (실제로 일정한 길이). 그래도 내 문제를 완전히 해결하지는 못했습니다.

다음 단계에서는 문자열 text을 사용하여 개체에 QPainter페인트 QImage합니다. 여기서 만나는 문제는 문자열 길이가 항상 같더라도 숫자의 너비가으로 그린 ​​공백 ( '') 및 '-'기호의 너비와 다르다는 것 QPainter입니다. 따라서 자릿수가 변경되면 점의 위치가 바뀌고 'Y'기호도 변경됩니다.

이미지 생성에 사용하는 코드는 다음과 같습니다.

QImage img( 100, 100, QImage::Format_ARGB32_Premultiplied ); 
img.fill( Qt::transparent );

QPainter painter( &img );

QPen pen;
pen.setColor( Qt::darkBlue );
painter.setPen(pen);

QFont font = painter.font();
font.setBold( true );
font.setPointSize( 10 );
painter.setFont( font );

QString text = QString("X:%1   Y:%2")
    .arg( x(), 9, 'f', 3, ' ' )
    .arg( y(), 9, 'f', 3, ' ' );
painter.drawText( QPointF(0, 50), text );
painter.end();
thibsc

arg메서드 의이 서명을 사용할 수 있습니다 .

// arg(double a, int fieldWidth, char format, int precision, QChar fillChar)
QString formated = QString("X:%1 Y:%2")
    .arg(x(), 9, 'f', 3, ' ')
    .arg(y(), 9, 'f', 3, ' ');

두 번째 문제는 글꼴 모음을 변경하여 해결합니다.

font.setFamily("Courier");

내 결과는 다음과 같습니다.

기본 글꼴 :
기본 글꼴

Courier 글꼴 :
Courier 글꼴

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Karate Framework에서 정렬을 수행하는 동안 def 변수 문제

분류에서Dev

문자열을 정렬하는 동안 C ++에서 sort () 작업

분류에서Dev

Yodlee에 계정을 추가하는 동안 MFA 관련 문제

분류에서Dev

c ++에서 객체 배열을 정렬하는 동안 std : bad_alloc 오류가 발생합니까?

분류에서Dev

래스터 페인팅을 사용하지 않고 QImage를 다른 QImage에 추가 할 수 있습니까?

분류에서Dev

Blob agnular에서 PDF 파일을 인쇄하는 동안 문제

분류에서Dev

Cygwin에서 ssh 설정을 수행하는 동안 권한 문제

분류에서Dev

동적 프레임에서 UILabels를 정렬하기 위해`boundingRectWithSize`를 사용하는 동안 문제

분류에서Dev

C #에서 클래스 개체를 JSON 문자열로 직렬화하는 동안 키 이름을 동적으로 설정하는 방법

분류에서Dev

TextView에서 TCPClient.class 문자열 IP로 문자열을 설정하는 동안 문제

분류에서Dev

Excel에서 정렬하는 동안 행을 함께 유지

분류에서Dev

테이블보기에서 셀을 삭제하거나 재정렬하는 동안 애니메이션

분류에서Dev

테이블을 업데이트하는 동안 내부 조인에서 정렬

분류에서Dev

자바 스크립트에서 객체 값을 수정하는 문제

분류에서Dev

추정기를 사용하여 Java에서 Tensorflow 모델을로드 / 제공하는 동안 문제

분류에서Dev

객체 배열을 반복하는 동안 객체 참조 제거

분류에서Dev

개체 목록을 검색하는 동안 Android Room / TypeConverter 문제

분류에서Dev

개체 유형을 int로 변환하는 동안 문제

분류에서Dev

다른 사람에게는 문제가없는 동안 개체에서 특정 속성을 가져 오는 데 문제가 있습니다.

분류에서Dev

맵 제한을 설정하는 동안 Matlab의 맵에 데이터 라인을 올바르게 플로팅하는 방법

분류에서Dev

QLayout 내에서 사용자 정의 QWidget을 만들고 삭제하는 동안 RAM 문제

분류에서Dev

xml을 직렬화 해제하는 동안 경로에 잘못된 문자가 있습니까?

분류에서Dev

ArrayList에서 두 개의 ArangoDB 컬렉션을 연결하는 동안 역 직렬화 문제

분류에서Dev

등록하는 동안 identityserver4에서 페이지에 반응하도록 리디렉션 URL을 설정하는 문제에 직면했습니다.

분류에서Dev

ahref에서 제목을 가져 오는 동안 문제

분류에서Dev

순수한 Javascript로 JSON 데이터에서 객체 중복을 제거하고 JSON 객체 내의 날짜 정보로 정렬하는 방법

분류에서Dev

중복을 계산 / 제거하는 동안 Excel 복사 / 정렬 데이터

분류에서Dev

정렬 절을 사용하는 동안 내 메서드의 구문 오류

분류에서Dev

setData () 함수에 배열을 전달하는 동안 문제

Related 관련 기사

  1. 1

    Karate Framework에서 정렬을 수행하는 동안 def 변수 문제

  2. 2

    문자열을 정렬하는 동안 C ++에서 sort () 작업

  3. 3

    Yodlee에 계정을 추가하는 동안 MFA 관련 문제

  4. 4

    c ++에서 객체 배열을 정렬하는 동안 std : bad_alloc 오류가 발생합니까?

  5. 5

    래스터 페인팅을 사용하지 않고 QImage를 다른 QImage에 추가 할 수 있습니까?

  6. 6

    Blob agnular에서 PDF 파일을 인쇄하는 동안 문제

  7. 7

    Cygwin에서 ssh 설정을 수행하는 동안 권한 문제

  8. 8

    동적 프레임에서 UILabels를 정렬하기 위해`boundingRectWithSize`를 사용하는 동안 문제

  9. 9

    C #에서 클래스 개체를 JSON 문자열로 직렬화하는 동안 키 이름을 동적으로 설정하는 방법

  10. 10

    TextView에서 TCPClient.class 문자열 IP로 문자열을 설정하는 동안 문제

  11. 11

    Excel에서 정렬하는 동안 행을 함께 유지

  12. 12

    테이블보기에서 셀을 삭제하거나 재정렬하는 동안 애니메이션

  13. 13

    테이블을 업데이트하는 동안 내부 조인에서 정렬

  14. 14

    자바 스크립트에서 객체 값을 수정하는 문제

  15. 15

    추정기를 사용하여 Java에서 Tensorflow 모델을로드 / 제공하는 동안 문제

  16. 16

    객체 배열을 반복하는 동안 객체 참조 제거

  17. 17

    개체 목록을 검색하는 동안 Android Room / TypeConverter 문제

  18. 18

    개체 유형을 int로 변환하는 동안 문제

  19. 19

    다른 사람에게는 문제가없는 동안 개체에서 특정 속성을 가져 오는 데 문제가 있습니다.

  20. 20

    맵 제한을 설정하는 동안 Matlab의 맵에 데이터 라인을 올바르게 플로팅하는 방법

  21. 21

    QLayout 내에서 사용자 정의 QWidget을 만들고 삭제하는 동안 RAM 문제

  22. 22

    xml을 직렬화 해제하는 동안 경로에 잘못된 문자가 있습니까?

  23. 23

    ArrayList에서 두 개의 ArangoDB 컬렉션을 연결하는 동안 역 직렬화 문제

  24. 24

    등록하는 동안 identityserver4에서 페이지에 반응하도록 리디렉션 URL을 설정하는 문제에 직면했습니다.

  25. 25

    ahref에서 제목을 가져 오는 동안 문제

  26. 26

    순수한 Javascript로 JSON 데이터에서 객체 중복을 제거하고 JSON 객체 내의 날짜 정보로 정렬하는 방법

  27. 27

    중복을 계산 / 제거하는 동안 Excel 복사 / 정렬 데이터

  28. 28

    정렬 절을 사용하는 동안 내 메서드의 구문 오류

  29. 29

    setData () 함수에 배열을 전달하는 동안 문제

뜨겁다태그

보관