【发布时间】:2019-03-15 06:37:45
【问题描述】:
好的,我正在重置整个帖子,因为我想我没有足够的“最小、完整和可验证的示例”,这确实是我的全部问题,因为我对插槽和信号非常迷失..所以这是第二次尝试,我将省略flower.cpp,但知道它在那里有一个功能
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQuickView>
#include <QtQuick>
#include <QNetworkAccessManager>
#include <iostream>
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonDocument>
#include <QNetworkReply>
#include <QObject>
#include "flower.h"
void Flower::onClicked(){
//code i've been trying to test all day
}
flower.h(我的类花(函数)的标题)
#ifndef FLOWER_H
#define FLOWER_H
#include <QObject>
class Flower
{
private slots:
void onClicked();
};
#endif // FLOWER_H
main.cpp(这是我的应用程序 QML 的启动位置,我正在尝试在那里设置信号和插槽的连接)
QQuickView home;
home.setSource(QUrl::fromLocalFile("main.qml"));
home.show();
QObject *homePa = home.rootObject();
QObject *buttF = homePa->findChild<QObject*>("buttFObject");
QObject::connect(buttF, SIGNAL(qmlClick()), buttF,
SLOT(Flower.onClicked()));
这是带有鼠标区域的导航菜单,我希望附加 onClicked: 命令
Rectangle {
signal qmlClick();
id: navMenu
color: "#00000000"
radius: 0
anchors.fill: parent
z: 3
visible: false
border.width: 0
transformOrigin: Item.Center
MouseArea {
id: buttFArea
objectName: buttFObject
anchors.fill: parent
onClicked: navMenu.qmlClick()
}
}
当我现在尝试运行时,我收到此错误“W libAHDP.so: QObject::connect: Cannot connect (null)::qmlClick() to (null)::Flower.onClicked()”
对于我的第一篇文章非常具有误导性和混淆表示歉意,我希望这能更清楚地说明我的问题是什么
【问题讨论】:
-
请提供minimal reproducible example - 现在你的问题中有太多与实际问题无关的代码,这让任何人都更难帮助。