Ответы пользователя по тегу QML
  • Как в GridLayout(PyQt5) сделать возможность менять размеры ячеек мышкой?

    @4rtzel
    Мне кажется, что это не получиться сделать с помощью GridLayout'а (или будет достаточно сложно). Возможно TableView или SplitView лучше подойдут для этого.

    Быстрое, костыльное решение с помощью SplitView:
    import QtQuick 2.9
    import QtQuick.Window 2.2
    import QtQuick.Controls 1.4
    
    Window {
        visible: true
        width: 640
        height: 480
        title: qsTr("Hello World")
    
        SplitView {
            anchors.fill: parent
            orientation: Qt.Vertical
            SplitView {
                anchors.left: parent.left
                anchors.right: parent.right
                height: parent.height / 2
                orientation: Qt.Horizontal
    
                Rectangle {
                    id: rect1
                    width: parent.width / 2
                    onWidthChanged: {rect3.width = width}
                    color: "lightblue"
                }
                Rectangle {
                    id: rect2
                    width: parent.width / 2
                    onWidthChanged: {rect4.width = width}
                    color: "lightgreen"
                }
            }
            SplitView {
                anchors.left: parent.left
                anchors.right: parent.right
                height: parent.height / 2
                orientation: Qt.Horizontal
    
                Rectangle {
                    id: rect3
                    width: parent.width / 2
                    onWidthChanged: {rect1.width = width}
                    color: "blue"
                }
                Rectangle {
                    id: rect4
                    width: parent.width / 2
                    onWidthChanged: {rect2.width = width}
                    color: "green"
                }
            }
        }
    }

    5b45193a1184d343332859.gif
    Ответ написан
    Комментировать
  • Qml import разные каталоги не находит?

    @4rtzel
    По-моему qml не очень умеет работать с относительными путями, которые выходят за root проекта. Попробуйте что-то вроде этого:

    Структура:
    ├── qml
    │   └── MyItem.qml
    └── project
        ├── main.cpp
        ├── main.qml
        ├── qml.qrc
        ├── project.pro

    main.qml:
    import "qml" as Common // Просто "qml"; без "../"
    
    Window {
        visible: true
        width: 640
        height: 480
        Common.MyItem {
        }
    }

    Не забудьте добавить файлы в qml.qrc.
    Ответ написан
    Комментировать