![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
MishaUA |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: ![]() ![]() ![]() |
Ситуация следующая:
Есть QMainWindow, при нажатии на главной форме кнопки "Добавить" будет создаваться на этой форме новый клас, наследуемый от Qwidget, который будет содержать QML окно (таким образом http://www.ics.com/blog/combining-qt-widge...er#.UumIKLQf6Ul ). Этот новый класс и qml скрипт, размещенный в нем, должны взаимодействовать. Планировалось в этот клас добавить еще один клас наследуемый от QDeclarativeItem и с помощью Q_PROPERTY взаимодействовать со скриптом, но проблема в том, что класов, наследуемых от Qwidget, будет создаваться несколько и скрипт должен взаимодействовать только с тем (QDeclarativeItem), в котором он был создан. Написал немного запутано, на деле, должно выглядеть примерно так: Нажимаем на форме кнопку "Добавить", создается новый объект класса, наследуемый от Qwidget (назовем "ТИП_1"), в нем окно QML. В классе тикает таймер, инкрементируя переменную, значение этой переменной должно передаваться в QML окно, и там как то отображаться. В случае, если будет несколько классов "ТИП_1", каждый должен обмениваться данными только со "своим" QML окном. Вобщем, как то так. Может кто то скажет, что проще было бы использовать только QML, без С++, но программа уже создана, и применяется примерно на 100 компах, сейчас просто необходимо добавить "красивое" отображение некоторых элементов, которое проблематично сделать на с++. |
|
|
Trisch |
![]()
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: ![]() ![]() ![]() |
Воспользуйтесь сигналами и слотами.
|
|
|
MishaUA |
![]()
Сообщение
#3
|
Участник ![]() ![]() Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: ![]() ![]() ![]() |
Это логично))
но как подключить слоты нужного объекта к нужному окну QML, если их будет несколько? |
|
|
Trisch |
![]()
Сообщение
#4
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: ![]() ![]() ![]() |
Ну можно зарегистрировать объект который будет посылать сигналы
ObjectQML - это наш объект, который посылает сигналы. Потом из этого объекта послать сигнал, отловить и присвоить объекту который уже создан в нашем конкретном виджите. Как то так:
Каждый виджет создает свой объект QML, свой объект который будет отсылать сигналы. И, чисто теоретически сигналы и одного виджета, не должны пересекаться с другим Сообщение отредактировал Trisch - 30.1.2014, 18:12 |
|
|
MishaUA |
![]()
Сообщение
#5
|
Участник ![]() ![]() Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: ![]() ![]() ![]() |
Сделал немножко по ином:
Работает, но хотелось бы чтобы фон был прозрачным. К примеру, если в QML написть:
То в вместо прозрачного фона получается черный фон (см фото). Пробовал делать так:
но не помогло(((((
Эскизы прикрепленных изображений
|
|
|
Trisch |
![]()
Сообщение
#6
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: ![]() ![]() ![]() |
Что-то мне кажется что без "бубна" это не сделать.
Почему бы, просто, не поставить под "кругом" какой нибудь фон? |
|
|
MishaUA |
![]()
Сообщение
#7
|
Участник ![]() ![]() Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: ![]() ![]() ![]() |
потому что фон под самим виджетом не однородный (на скрине видно)
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 14.5.2025, 11:16 |