草庐IT

c++ - qt 模型中的角色是什么以及 setRoleNames() 的作用是什么?

我必须在qml中使用某种c++qt模型。我已经有了QStandardItemModel,但由于所谓的setRoleNames(),它在QML中不起作用。我一直在寻找角色的一些解释,但我似乎找不到。我找到了在qml(here)中使用QStandardItemMODel的某种解决方案,但它使用“角色”,所以我不明白它是如何工作的。qt模型中的角色是什么? 最佳答案 角色只是访问模型数据时使用的附加选择器。如何具体解释角色取决于模型和View。当您使用模型时,您必须在牢记模型的行为的同时决定使用哪些角色。这些角色让您可以将各种属性附加到每

c++ - QtQuick、动态图像和 C++

我是Qt的新手,根据我在qt-project.org上阅读的内容和其他地方;QtQuick似乎是一个有吸引力的选择,因为它能够在基于指针和触摸的设备上工作。我的问题是让它与c++一起工作。我决定在“HelloWorld”之后编写康威生命游戏的一个变体作为下一步。对于如何将“板”——一个[高度][宽度][每像素字节数]字符数组——集成到场景图中,我感到非常困惑。基本上,该过程是“LifeBoard”遍历其规则并更新char*/image。我有这个简单的QML::::QMLApplicationWindow{id:life_app_windowvisible:truetitle:qsTr(

c++ - 单击按钮后动画 QML 矩形的颜色

我试图让我的开发板在单击按钮时闪烁绿色。我添加了以下颜色动画代码来帮助创建闪烁效果,以便板可以从其原始颜色变为绿色,然后再恢复为原始颜色。我在一些代码示例中看到,ColorAnimation也可以像这样使用ColorAnimationoncolor{...}。我尝试使用它来引用rectangle颜色属性,但它提示color是无效属性,这就是为什么我在下面的代码中没有它。SequentialAnimation{running:trueloops:Animation.InfiniteColorAnimation{to:"green"duration:500}ColorAnimation{t

javascript - QML 鼠标在 MouseArea 中的绝对位置

如何从鼠标区域获取鼠标的绝对位置?我需要让它显示正确位置的弹出窗口Item{Menu{id:menuMenuItem{onTriggered:{//NeedMouseabsoluteposition}}}MouseArea{id:mouseAreaanchors.fill:parentonClicked:{menu.popup()}} 最佳答案 简答映射到/从另一个项目:mapToItem,mapFromItem映射到/来自全局(来自Qt5.7):mapToGlobal,mapFromGlobalonClicked:{varposi

c++ - QML:在 QML 中使用 cpp 信号总是导致 "Cannot assign to non-existent property"

我只是想将一个cpp信号连接到一个qml槽并尝试了不同的方法,但它总是在运行时导致相同的QML错误:无法分配给不存在的属性“onProcessed”!为什么?这是我的Cpp对象:#includeclassImageProcessor:publicQObject{Q_OBJECTpublic:explicitImageProcessor(QObject*parent=0);signals:voidProcessed(constQStringstr);publicslots:voidprocessImage(constQString&image);};ImageProcessor::Ima

c++ - 如何为 qmlRegisterSingletonType 实现单例提供程序?

我想在QML中使用C++类作为Singleton实例,并认为我必须使用qmlRegisterSingletonType注册它们。此函数需要一个提供已注册C++类实例的函数。我在Windows上使用带有MinGW4.8的最新Qt5.3.1。documentation显示以下提供程序函数示例:staticQJSValueexample_qjsvalue_singletontype_provider(QQmlEngine*engine,QJSEngine*scriptEngine){Q_UNUSED(engine)staticintseedValue=5;QJSValueexample=sc

c++ - 如何将 C++ 代码中定义的单例对象的信号连接到 QML 组件?

我的主要目标是在*.qml文件中定义QML组件时接收来自单例对象的信号。假设我在C++代码中定义了一个单例对象,如下所示:classMySingleton:publicQObject{Q_OBJECTQ_PROPERTY(QStringvalueREADvalueWRITEsetValueNOTIFYvalueChanged)typedefQObjectBase;public:staticMySingleton*instance();constQString&value()const;voidsetValue(constQString&value);signals:voidvalueC

c++ - QQuickWindow 上下文属性?

我正在通过以下代码创建一个新窗口:QMainController*myController=newQMainController(0,m_autenticado);QQmlApplicationEngine*engine=newQQmlApplicationEngine(this);engine->rootContext()->setContextProperty("MyController",myController);engine->load(QUrl(QStringLiteral("qrc:///newPage.qml")));QQuickWindow*window=qobjec

c++ - Q_ENUMS 在 QML 中是 "undefined"吗?

枚举不适合我。我已经用Q_ENUMS()注册了它们我没有忘记Q_OBJECT宏使用qmlRegisterType()注册类型模块是用QML导入的简而言之,一切都是“照章办事”,但出于某种原因,我继续为QML中的每个枚举获取undefined。我错过了什么吗?classUI:publicQQuickItem{Q_OBJECTQ_ENUMS(ObjectType)public:enumObjectType{_Root=0,_Block};...};...qmlRegisterType("Nodes",1,0,"UI");...importNodes1.0...console.log(UI.

c++ - 将新项目添加到基于 QAbstractListModel 的模型时,QML View 不会更新

我已经弄清楚如何将派生自QAbstractListModel的模型绑定(bind)到QMLView。但是接下来我累了就不行了。如果将新项目添加到模型,QMLView将不会更新。这是为什么?DataObject.hclassDataObject{public:DataObject(constQString&firstName,constQString&lastName):first(firstName),last(lastName){}QStringfirst;QStringlast;};SimpleListModel.hclassSimpleListModel:publicQAbstr