Политика конфиденциальностиКонтактыО сайтеОтзывыGitHubDonate
© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
28 марта 2019 г. 7:59

Как в QML поставить картинку на кнопку

QML, button

Добрый день.

Как в QML поставить картинку на кнопку?

Изображения я пом естил в ресурсы:

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.
14

Добрый день.

Ну думаю, что будет примерно так

ToolButton {
    text: qsTr("⋮")
    onClicked: { 
        // ToDo sometthing
    }
    icon.source: "qrc:/images/black.png"
}
0

вот так работает, но картинка как иконка, занимает часть кнопки. но как ее растянуть на всю кнопку?

icon.source: "qrc:/images/images/black.png"
0

Вот так можно за кнопекой поставить рисунок, но не заменит рисунок кнопки нужным рисунком

        Image {
            id: name
            source: "qrc:/images/images/black.png"
        }
0

Так вы не знаете, как это можно сделать?

0

Помимо icon.source есть ещё свойства icon.width и icon.height, которыми можно задать высоту и ширину изображения.

Либо можно без кнопки сделать

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    MouseArea {
        anchors.centerIn: parent
        width: 100
        height: 100

        Image {
            anchors.fill: parent
            id: name
            source: "qrc:/account-card-details.png"
        }

        onPressed: {
            // ToDo something
            console.log("hello")
        }
    }
}
0

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

0

Не обязательно. Долгое время в Quick.Controls 2 не было обычного TableView

Что касается методов кнопки, то посмотрите тогда полный список в документации

Также обратите внимание на свойство display

0

Попробовал задание размеров иконки, но к желаемому результату не привело.

Вспомнил, с помощью метода

button->setStyleSheet("background-image: url(адрес картинки)")

можно задать картинку на кнопку в Qt дизайнере. Я в QML пока не нашел похожего. Может Вы знвете аналог?

0

или может быть, как вариант кастыли, поверх кнопки поставить картинку, но будет ли тогда работать кнопка?

0
  • 29 марта 2019 г. 10:46
  • Ответ был помечен как решение.

Нашел, вот так картинка заполняет кнопку:

Image {
            anchors.fill: parent
            source: "qrc:/images/images/black.png"
            fillMode: Image.Tile
        }

Тут есть еще другие решения и другие костыли

0

Вот только при растягивании кнопки картинки замостились, а нужно одну картинку растянуть на кнопку. Не знаете, как это можно сделать?

0

Поменял режим заливки на Stretch и заработало

0

Это точно не костыли, это обычная вёрстка в QML

0

ясно

0

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
AA
17 апреля 2019 г. 19:40
Anton Ablin

Qt - Тест 001. Сигналы и слоты

  • Результат:73баллов,
  • Очки рейтинга1
E
17 апреля 2019 г. 18:16
Evgeny

Qt - Тест 001. Сигналы и слоты

  • Результат:100баллов,
  • Очки рейтинга10
E
17 апреля 2019 г. 18:14
Evgeny

Qt - Тест 001. Сигналы и слоты

  • Результат:78баллов,
  • Очки рейтинга2
Последние комментарии
U
18 апреля 2019 г. 15:37
Unreal_man

А как иконку в хедер задать?
u
18 апреля 2019 г. 2:15
uaa

доброго времени,большое спасибо за пример для начинающего)при адаптации к своему проекту столкнулся с таким ньансом:в vepolyline.h в 47 строке нужна инициализация по умолчанию: int m_pointF...
E
11 апреля 2019 г. 12:49
Evgeny

Спасибо за ответ) У меня компоновщик на нее ругался просто. Оказалось, просто забыл Q_OBJECT в начале класса указать.
11 апреля 2019 г. 12:29
Евгений Легоцкой

Добрый день. Вы имели ввиду реализацию? Для сигналов в Qt реализация не пишется, это всё генерируется в moc файлах под капотом Qt.
E
11 апреля 2019 г. 12:15
Evgeny

Здравствуйте. А где описание функции signal1()?
Сейчас обсуждают на форуме
R
19 апреля 2019 г. 9:55
RED_Spider

мені важко це зараз навіть перевірити, тому що знайшов коміт, це ще було в 2016 році, і цей код не буде працювати коректно зараз, єдине скажу що це були QThread
i
17 апреля 2019 г. 15:03
ilya.guzikov

BlinCT, на стороне ++ это делать необходимо так как в qml при использовании функции append происходит перерисовка всех точек лини(как я понимаю) и из-за этого при использовании больших массиво...
10 апреля 2019 г. 11:20
Алексей Внуков

может тоже кому надо будет - QML не принимает QVector<QVector<int>> , при попытке вывести полученый вектор QML показывает что это QVariant(QVector<QVector<int> ...
SN
10 апреля 2019 г. 9:36
Stanislav Nykytiuk

Как реализовать такое меню, что бы нажмаешь меню подменю и выбор позиции? Данные меню и подменю в базе SQL.
Присоединяйтесь к нам в социальных сетях

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы