找回密码
 立即注册
收起左侧

QML和C++混合问题,程序怎么不显示

5
回复
7756
查看
[复制链接]

尚未签到

来源: 2015-4-19 11:51:49 显示全部楼层 |阅读模式
5Qter豆
很简单的程序,希望运行后点按钮打开一个新窗口,没有报错,但是没显示出来,进程里有,这是怎么回事?
ear.h
#ifndef EAR_H
#define EAR_H
#include<QApplication>
#include<QDialog>
class Ear:public QObject
{

    Q_OBJECT
public:
    Ear(QObject *parent=0);
//~Ear();
public slots:
    void open();
};
#endif // EAR_H

ear.cpp
#include "ear.h"
Ear::Ear(QObject *parent)
    : QObject(parent)
{
}
void Ear:pen()
{
    QDialog *wo=new QDialog();
    wo->exec();
}


main.cpp
#include <QApplication>
#include <QQmlApplicationEngine>
#include"ear.h"
#include<QtQml>
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
  qmlRegisterType<Ear>("Ear", 1, 0, "Ear");
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:///main.qml")));

    return app.exec();
}



main.qml
import QtQuick 2.2
import QtQuick.Controls 1.1
import Ear 1.0
Item {
    width: 300; height: 200
    Ear{
        id:abc
    }
  Button{
        idpen
        anchors.bottom: parent.bottom
        anchors.bottomMargin: 5
        width:60
       height:40
       onClicked: {abc.open();}
  }
}

最佳答案

查看完整内容

因为QDialog是widget库的,Item是quick库的,因此需要用专门的ApplicationWindow去让quick兼容widget
回复

使用道具 举报

尚未签到

2015-4-19 11:51:50 显示全部楼层
rjosodtssp 发表于 2015-4-19 21:11
找到原因了,竟然是Item的问题,改成ApplicationWindow就好了,这是为什么?我看教程上写的就是Item,我 ...

因为QDialog是widget库的,Item是quick库的,因此需要用专门的ApplicationWindow去让quick兼容widget
回复

使用道具 举报

尚未签到

2015-4-19 12:41:22 显示全部楼层
你用排除法:

先看看open函数有没有执行,然后把dialog换成别的东西看看能不能用
回复

使用道具 举报

尚未签到

2015-4-19 21:11:43 显示全部楼层
Joey_Chan 发表于 2015-4-19 12:41
你用排除法:

先看看open函数有没有执行,然后把dialog换成别的东西看看能不能用 ...

找到原因了,竟然是Item的问题,改成ApplicationWindow就好了,这是为什么?我看教程上写的就是Item,我的怎么就不行
回复

使用道具 举报

尚未签到

2015-4-20 11:40:30 显示全部楼层
Joey_Chan 发表于 2015-4-20 09:38
因为QDialog是widget库的,Item是quick库的,因此需要用专门的ApplicationWindow去让quick兼容widget ...

又有个问题:我在Rectangle里放了个Button,我用Flickable和PinchArea实现Rectangle的翻动和Button的旋转,这两种功能不能同时实现,只能实现一个,是因为anchors.fill重合的问题吗?按说前一个是一个点触摸,后一个是两个点触摸,也不该有影响吧?
回复

使用道具 举报

尚未签到

2015-4-20 20:37:39 显示全部楼层
rjosodtssp 发表于 2015-4-20 11:40
又有个问题:我在Rectangle里放了个Button,我用Flickable和PinchArea实现Rectangle的翻动和Button的旋转 ...

这个能另外开一个贴子吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了