Qt 快速控制2不好看

Qt 快速控制2不好看,qt,qml,qt5,qtquickcontrols2,Qt,Qml,Qt5,Qtquickcontrols2,Qt5.10,Windows10桌面 以下QML代码: import QtQuick 2.10 import QtQuick.Window 2.10 import QtQuick.Controls 2.3 import QtQuick.Layouts 1.3 Window { visible: true width: 250 height: 100 title: qsTr("My app") GridLayout { colum

Qt5.10,Windows10桌面

以下QML代码:

import QtQuick 2.10
import QtQuick.Window 2.10
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3

Window {
    visible: true
    width: 250
    height: 100
    title: qsTr("My app")

    GridLayout
    {
        columns: 2

        Label {
            text: "Setting1:"
        }

        ComboBox {
            model: ["100%", "90%", "80%", "70%", "60%", "50%", "40%", "30%"]
        }

        CheckBox {
            id: tidle
            text: "Setting2:"
        }

        ComboBox {
            model: ["90%", "80%", "70%", "60%", "50%", "40%", "30%"]
            enabled: tidle.checked
        }
    }
}
给出以下结果:

这对我来说很糟糕:

1) “设置1”标签和复选框未明显对齐

2) 复选框和组合框的大小与文本大小相比太大


我是错过了什么还是这是正常的行为?

这是正常的行为

A具有以下布局:

例如,
标签
的填充为0,另一方面,
复选框
如果有,则它们对齐,有两种可能的解决方案:

  • 将leftPadding of复选框设置为0:

  • 或将标签设置为与复选框相同的左填充:

Qt提供了以下定制
控件的指南:


对于
组合框的大小,您可以使用
来计算适当的大小,在我的情况下,我使用Linux,这是不必要的。

您是我的英雄!顺便说一句,为什么不让所有控件的填充值都等于0…@AlexanderDyagilev为什么这么说?你可能看不到效果,因为ContenItem有一个额外的内部空间。不,你的解决方案对我来说很好。我的意思是Qt开发人员可以将所有填充设置为0,这样就不必像您的示例中那样设置填充值……除了答案之外,默认样式更注重性能而不是美观-尝试其他一些样式:
CheckBox {
    id: tidle
    text: "Setting2:"
    leftPadding: 0
}
Label {
    text: "Setting1:"
    leftPadding : tidle.leftPadding
}

...

CheckBox {
    id: tidle
    text: "Setting2:"
}