홈>
매우 간단한 작업을 수행해야합니다. 사각형 안에 텍스트를 표시하고 싶습니다. 해당 사각형의 크기는 텍스트의 너비 여야합니다.
C ++에서는 매우 쉽다. QString을 정의하고 QFontMetrics를 적용하여 너비를 얻으십시오. 그런 다음 사각형 그래픽 요소를 정의하여 해당 크기를 갖습니다. 5 분 안에 완료됩니다.
QML이 더 사용하기 쉽다고 들었습니다. 따라서 5 분 안에 그 문제를 해결할 것으로 기대했습니다. 나는하지 않았으며 여전히 붙어 있습니다. 내가 시도한 것은 다음과 같습니다.
Rectangle {
width: myText.contentWidth
height: myText.contentHeight
Text {
anchors.fill:parent
id: myText
font.family: "Helvetica"
font.pointSize: 50
text: qsTr("The string I want to display")
}
}
이것이 내가 이해할 수없는 이유로 작동하지 않습니다. 내 요구에 정확히 맞지 않는 방식으로 방법을 찾았습니다.
Rectangle {
width: 100
height: 100
MouseArea {
id: myMouseArea
anchors.fill: parent
onClicked: parent.width=myText.contentWidth
hoverEnabled: true
}
Text {
anchors.fill:parent
id: myText
font.family: "Helvetica"
font.pointSize: 50
text: qsTr("The string I want to display")
}
}
이 경우 사각형을 클릭하면 올바른 너비를 얻습니다. 그럼에도 불구하고 올바른 크기의 사각형을 얻기 위해 클릭하지 않아도되기 때문에이 솔루션에 관심이 없습니다.
myText
때마다 사각형의 크기가 올바른 크기를 갖기를 원합니다.
텍스트를 변경합니다.
onTextChanged
사용
텍스트 항목에서도 작동하지 않습니다.
여기서 무엇을 놓치고 있습니까?
- 답변 # 1
- 답변 # 2
라벨 구성 요소가 작업을 수행 할 것이라고 확신합니다.
import QtQuick 2.1 import QtQuick.Controls 2.4 ApplicationWindow { visible: true Column { Repeater { model: [ {"color": "red", "radius": 1}, {"color": "green", "radius": 2}, {"color": "blue", "radius": 3} ] Label { padding: 0 text: modelData.color font.family: "Helvetica" font.pointSize: 50 background: Rectangle { color: modelData.color radius: modelData.radius } } } } }
관련 자료
- c# - 열 안에 긴 텍스트를 감싸는 방법은 무엇입니까?
- linux - 일부 텍스트 블록을 grep하는 방법
- flutter - 어떻게 텍스트를 새 줄에 적절하게 줄 바꿈 할 수 있습니까?
- R lapply에서 일부 요소를 합산하는 방법
- python - 웹 페이지의 일부 요소의 URL을 찾는 방법은 무엇입니까?
- python - 출력에 텍스트를 추가하는 방법
- Perl을 사용하여 텍스트 파일을 csv 파일로 구문 분석하는 방법
- objective c - iOS 텍스트 필드를 중지하는 방법 "-"를 "—"로 변환
- 파이썬으로 텍스트 파일에서 텍스트 패턴을 찾는 방법은 무엇입니까?
- python - 각 색인의 목록에서 텍스트를 제거하는 방법
- c# - 텍스트 파일에서 읽은 다음 평균을 계산하는 방법
- python - 입력 필드에 텍스트를 보내는 방법
- bash - (정규식) 내에서 텍스트를 파일로 만드는 방법
- python - for 루프 내부의 텍스트 길이를 얻는 방법
- javascript - 한 텍스트 상자에서 Lable로 텍스트를 복사하는 방법
- Flutter의 행에서 텍스트가 너무 길 때 자동 확장하는 방법
- java - 직사각형을 다시 칠하려면 어떻게해야합니까?
- html - 텍스트 아래에 날짜 선택기를 표시하는 방법
- Bash를 사용하여 파일에서 특정 텍스트를 가져 오는 방법
- python - span 요소에서 br 텍스트를 추출하는 방법은 무엇입니까?
내가 아는 한 Qt 5.4에서 개발자가 글꼴 메트릭을 사용할 수 있었기 때문에 QML에서는 비교적 새롭습니다. 당신은 주로
FontMetrics
있어 그리고TextMetrics
. 간단한 사용법 예 :Phrogz
가 언급 한대로TextMetrics
유형은 줄 바꿈 된 텍스트 측정을 지원하지 않습니다.가치있는 것에 대해 QML에서 메트릭을 사용할 필요가 없었습니다. 나를 위해
content*
또는painted*
속성은 목적을 달성했으며, Qt 5.12부터는 잘 작동하는 것으로 보입니다. 일명이 :뿐만 아니라
올바른 시각 동작을 생성하십시오.OP에서 제안한 간단한 사용 사례에 대한 측정 항목 사용을 선호합니다. 반대 크기의 경우-텍스트를 특정 크기에 맞추기-속성 조합으로 트릭을 수행 할 수 있습니다 (예 :
여기서 픽셀 크기는 단순히 위에 있지만 텍스트 크기는
2
의 최소 크기 때문에 여전히 맞습니다. 이 설정되고 텍스트에 앵커에 의해 정의 된 명확한 맞춤 정책과 명확한 경계가 있습니다.