Nano Hash - криптовалюты, майнинг, программирование

QML: как настроить компонент и использовать его в одном файле

Есть ли какой-то синтаксис в QML для определения и использования компонента в том же файле, как этот?

import QtQuick 2.6
import QtQuick.Window 2.2

var MyButton = Rectangle { width : 100; height : 60; color : "red" } // define it

Window {
    visible: true
    MyButton // use it
}

Ответы:


1

Вы не можете использовать встроенный компонент напрямую, но вы можете использовать загрузчик:

Component {
  id: btn
  Button { width = 100; height = 60; background = "red" }
}

Loader {
  sourceComponent: btn
}

Другим недостатком является то, что вы не можете напрямую указать свойства для созданного объекта.

Вы также можете использовать компонент в качестве делегата для представлений, повторителей и т.п.

Это ИМО одно из больших упущений QML.

21.11.2017
  • Это сработало. И я могу настроить ширину кнопки. Смотрите мой захват ниже этого вопроса. 21.11.2017
  • Этот трюк сработает для размера, так как элемент будет заполнять загрузчик в этом конкретном сценарии, но это все. Например, вы не можете установить обработчики сигналов напрямую, вы должны использовать элемент Connections. 21.11.2017

  • 2

    При поддержке @dtech

    import QtQuick 2.6
    import QtQuick.Window 2.2
    
    Window {
        visible: true
        width: 640
        height: 480
        title: qsTr("Hello World")
    
        Component { id: btn; Rectangle { width : 100; height : 100; color : "red" } }
    
        Column {
            spacing: 10
            Loader { sourceComponent: btn }
            Loader { sourceComponent: btn; width: 300 }
            Loader { sourceComponent: btn; width: 1000 }
        }
    }
    

    И результат:

    Результат выполнения

    21.11.2017
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..