Qt Quick 2 Qml:将文本准确地放在圆圈的中心
Qt Quick 2 Qml: Place text exactly in center of circle
我正在尝试将文本准确地放在Qml中圆圈的中心:
Rectangle {
id: rect
width: 20
height: 20
radius: width/2
color: "red"
anchors.verticalCenter: parent.verticalCenter
Label { // or Text
anchors.centerIn: parent // or anchors.fill: parent
text: "A"
color: "white"
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
}
//EDIT: For testing different locations:
MouseArea {
anchors.fill: parent
drag.target: rect
drag.axis: Drag.XAxis
}
}
这样做的问题是文本略微偏离中心(向左和向下移动)。我测试了不同的尺寸和字符,但都显示出相同的问题。有没有更好的方法将文本准确地放在中心?
[编辑]:字体偏移量似乎与屏幕上的位置有关(但我无法确定是什么原因造成的 - 它发生在奇数和偶数x坐标上)。换句话说:当你在圆圈周围拖动时,居中的字符会稍微移动。
问候
如果你想把一个项目,比如项目A,放在另一个项目的正中心,你应该关闭A的anchors.alignWhenCentered
(默认情况下是这样,以使项目画得清晰)。
这是我的方式,不是很优雅,但它有效...
Text {
y: -4
text: "A"
color: "white"
font.pixelSize: 20
anchors.horizontalCenter: rect.horizontalCenter
}
相关文章:
- 从C++实例化QML
- 使用CMake创建QML插件
- QT通过C++添加映射QML项目
- 如何在没有信号的情况下从C++执行QML插槽
- QML按钮点击功能执行顺序
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 建议在运行时将带有类实例的列表从c++导入qml
- Qt Quick-如何仅从c++代码与qml属性交互
- 使用的未初始化局部变量'Quick'
- 如何将带有自定义对象的容器从C++传递到QML
- QML 使用带有参数C++函数
- 最佳做法是从另一个线程访问 qml 中的Q_PROPERTY
- Qt Quick - 如何在 qml 接口中使用继承自 QQuickPaintedItem 的 c++ 类?
- 如何拦截Qt Quick qml事件
- CMake,QT Quick & Visual Studio:"qrc:/main.qml:-1 File not found"
- Qt Quick 2 Qml:将文本准确地放在圆圈的中心
- QT Quick (QML) assemble mac-.bundle -> 不是使用 macdeployqt 时的动态库错误
- 从QML(Qt Quick应用程序)调用C++方法
- QOpenglWidget and QML Quick
- Qt5 QtQuick 2.0 (Qt Quick Application) 在一个窗口中切换视图(QML 文件)