【问题标题】:center a checkbox in tableview with QML使用 QML 在 tableview 中居中一个复选框
【发布时间】:2017-03-22 06:15:26
【问题描述】:

我在 TableView 中使用复选框控件,我用 QML 定义如下:

import QtQuick 2.2
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4

TableViewColumn {
    title: ""
    role: "check"    
    delegate: CheckBox {
        anchors.fill: parent
        checked: false
        anchors { horizontalCenter: parent.horizontalCenter }
    }
}

我可以在 TableView 中使用它,如下所示:

import QtQuick 2.3
import QtQuick.Window 2.2
import QtQuick.Layouts 1.1

import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4

ControlView {
    visible: true
    width: parent.width; height: parent.height    
    anchors.centerIn: parent

    TableView {
        id: reviewTable
        width: parent.width; height: parent.height
        anchors.centerIn: parent

        TableViewCheckBoxColumn {
            title: "Upload"
            width: 100
            resizable: false
        }

        TableViewColumn {
            resizable: true
            role: "Dummy"
            title: "Dummy"
            width: 250
        }

        style: TableViewStyle {
            headerDelegate: Rectangle {
                height: textItem.implicitHeight
                width: textItem.implicitWidth

                Text {
                    id: textItem
                    anchors.fill: parent
                    verticalAlignment: Text.AlignVCenter
                    text: styleData.value
                    renderType: Text.NativeRendering
                    font.bold: true                    
                }
            }
        }        

        model: ListModel {
            ListElement {
                Dummy: "value 1"
            }
            ListElement {
                Dummy: "value 3"
            }
        }
    }
}

现在,尽管设置了锚点(或任何可用的对齐属性),复选框仍保持向左对齐。如何将它水平居中到列?

【问题讨论】:

    标签: qt pyqt qml qt-quick


    【解决方案1】:

    CheckBox 包装在委托中,如下所示:

    Item {
        anchors.fill: parent
        CheckBox {
            anchors.centerIn: parent
            checked: false
    
        }
    }
    

    顺便说一句,不要在同一个应用程序中混合使用 QtQuick 版本。

    【讨论】:

    • 不幸的是,这不起作用。我得到相同的输出。添加 anchors.fill: parent 失败,出现组件未就绪错误。
    • 可能你没有提供所有的源代码。它对我来说就像一个魅力
    • 它确实有效。我完全误解了……应该读得更好。道歉。
    猜你喜欢
    • 2021-04-20
    • 2018-04-09
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    相关资源
    最近更新 更多