8 / 5 / 0
Регистрация: 03.07.2013
Сообщений: 30
1

Передать значение из одного QML файла в другой

02.06.2015, 14:11. Показов 5435. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый.

Подскажите, как передать значение из одного QML файла в другой?
В документации вообще непонятный пример по signal для QML.

Работает в текущем файле. А толку, если нельзя в другой файл передать.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
signal activated()
onActivated: console.log("TEST")
 
...
 
MouseArea {
   anchors.fill: parent
   onClicked: {
 
   onPressed: mainMenu.activated()
   }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.06.2015, 14:11
Ответы с готовыми решениями:

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

Передать значение из одного ListView в другой, и на другой форме
Есть две формы и у них есть ListView1 и у Form1 и у Form2 Мне надо что бы выбранный элемент...

Передать значение из одного класса в другой
есть 2 класса public partial class MainPage : UserControl { void runer() ...

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

1
8 / 5 / 0
Регистрация: 03.07.2013
Сообщений: 30
04.06.2015, 07:09  [ТС] 2
Заработало. Проблема была опять в ресурсах и путях к файлам. И видимо еще в названии самого файла (не проверял, но кажется имеет значение регистр). Название файла должно быть с большой буквы.

И еще отдельная проблема самого редактора Qt. После создания класс C++ и попытки привязать его в QML, происходит недопонимание этих языков. Нужно либо перезапустить Qt, либо пересохранить .pro файл. У меня так.

Итак.
Допустим есть кнопка. В ней создаем сигнал. И активируем его по нажатию на надписи.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// это файл QMLs/MenuBackButton.qml
 
Item {
  id: menuBackButton
  height: 24
  width: 24
 
  signal activated()
 
  Label {
      text: qsTr("Кнопка")
      font.pointSize: 16
      color: "#F1F1F1"
 
      MouseArea {
          anchors.fill: parent
          onClicked: {
 
              console.log("CLICK")
              onPressed: menuBackButton.activated()
          }
      }
  }
}
Теперь ловим этот сигнал. Вот тут и крылись проблемы. Во первых правильно указать путь к файлу кнопки. У меня все .qml лежат в каталоге QMLs в корне проекта. И во вторых (видимо в этом была основная проблема), нужно было название файла кнопки создавать с заглавной буквы. Иначе в коде будет ошибка - "Неверное название свойства".

Вот тогда MenuBackButton отображается правильно.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
// это файл QMLs/toolBarMenu.qml
 
import "../QMLs"
 
Item {
    id: rootMenu
    anchors.fill: parent
 
    MenuBackButton {
 
        onActivated: console.log("TEST")
    }
}
После нажатия выводит:
qml: CLICK
qml: TEST

Всем спасибо, надеюсь это пригодится.
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2015, 07:09
Помогаю со студенческими работами здесь

Передать значение из одного класса в другой
помогите определить значение Есть код using System; using System.Collections.Generic;...

Как передать значение одного input в другой?
что то тут не так <div id="btn"> кнопка </div> <input type="text" id =...

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

Передать значение переменной из одного юнита в другой
Здравствуйте. Нужно передать значение переменной из одного юнита в другой без создания доп....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru