以下是一个包含旋钮控件和自定义图形的QML文件:
import QtQuick 2.9
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.3
import QtQuick.Window 2.2
import QtQuick.Shapes 1.0
Window {
id: window
visible: true
width: 400
height: 200
RowLayout {
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
spacing: 5
Dial {
id: dial1
}
Control {
id: dial2
implicitWidth: dial1.width
implicitHeight: dial1.height
antialiasing: true
Shape {
anchors.fill: parent
antialiasing: true
ShapePath {
strokeWidth: 1
strokeColor: dial2.visualFocus ? dial2.palette.highlight : dial2.palette.dark
startX: dial2.width/2
startY: 0
PathArc {
x: dial2.width/2
y: dial2.height
radiusX: dial2.width/2
radiusY: dial2.height/2
direction: PathArc.Clockwise
}
PathArc {
x: dial2.width/2
y: 0
radiusX: dial2.width/2
radiusY: dial2.height/2
direction: PathArc.Clockwise
}
}
}
}
}
}
由于在控件和形状上都设置了antialiasing:true
,因此我希望路径看起来很平滑。 但是,它看起来很粗糙:
如何抗锯齿形状?
QSurfaceFormat format; format.setSamples( 8 ); auto window = dynamic_cast( engine.rootObjects().first() );
window->setFormat( format );
然而,在迁移到Qt 5.12之后,这种方法不再起效,显然需要在实例化引擎之前进行设置。 - Tobias GurdanShape{ShapePath{PathSvg{path: string}}}
中的string
。 - user6283344