Сигнал C ++ не улавливается на стороне QML [дубликат]

Пакет Visual Studio NuGet необходимо обновить для новой версии набора инструментов

У меня просто возникла проблема с подключением libpng с Visual Studio 2013. Проблема в том, что в файле пакета были только библиотеки для Visual Studio 2010 и 2012.

Правильное решение - надеяться, что разработчик выпустит обновленный пакет и затем обновит его, но он работал для меня, взломав дополнительную настройку для VS2013, указав на файлы библиотеки VS2012.

Я отредактировал пакет (в папке packages внутри каталога решения), найдя packagename\build\native\packagename.targets и внутри этого файла, скопировав все секции v110. Я изменил v110 на v120 в полях условий только очень осторожно, чтобы пути с именами файлов были все как v110. Это просто позволило Visual Studio 2013 подключиться к библиотекам на 2012 год, и в этом случае он работал.

8
задан 2 8 29 January 2014 в 21:08
поделиться

2 ответа

Вам нужно установить свойство context перед , которое вы вызываете View.setSource, иначе в тот момент, когда читается qml-файл, свойство ggg действительно не определено.

Попробуйте следующее:

App = QGuiApplication(sys.argv)
View = QQuickView()
Context = View.rootContext()

GlobalConfig = Config('sc').getGlobalConfig()
print (GlobalConfig, type(GlobalConfig))
Context.setContextProperty('ggg', GlobalConfig)

View.setSource(QUrl('views/sc_side/Main.qml'))    
View.setResizeMode(QQuickView.SizeRootObjectToView)
View.showFullScreen()
sys.exit(App.exec_())

Отказ от ответственности: не зная, что Config, я не могу сказать, действительно ли это будет работать без каких-либо других модификаций.

13
ответ дан mata 4 September 2018 в 08:52
поделиться

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

Если вы ДЕЙСТВИТЕЛЬНО вынуждены это делать, просто добавьте безопасность в свой QML-код :

color: (typeof (ggg) !== "undefined" ? ggg.Colors.notificationMouseOverColor : "transparent");

Затем, когда вы установите свойство контекста, он перезагрузит контекст (не рекомендуется), но по крайней мере ошибка не произойдет.

7
ответ дан TheBootroo 4 September 2018 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: