|
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
|