방금 QWidgets에 대해 읽고 있었으며 런타임 중에로드되는 위젯 인 플러그인을 만들고 싶습니다. 샘플 코드와 요구 사항을 살펴볼 때 플러그인은 인터페이스와 QObject를 상속 한 것으로 보입니다. 버튼과 슬롯이 다른 QWidget 플러그인을 어떻게 만들 수 있습니까? 또한 인터페이스에서 상속 한 플러그인과 QObject에서 상속받은 (QObject에서 상속 한) 기본 클래스를 만들 수 있습니다. 당신은 단지 그들의 이름을 (RTTI 지원을 필요로하지 않습니다) 알고에 의해, 런타임 중에 위젯을로드 할 수있는QWidget에서 상속 한 Qt 플러그인을 만드는 방법
http://developer.qt.nokia.com/doc/qt-4.8/plugins-howto.html
그러나, 나는 metaobject를 읽어보십시오. 그러나 나는 그것을 어떻게 알아들을 수 있었을까요? Whatever 플러그인을 다루려면 .pro 파일에 다른 플래그 세트를 사용하여 컴파일하는 특별한 프로젝트에 넣어야합니다. 하지만 내가 여기서 어떻게 할거야?
나는 정말로 qtplugin을 사용하고 싶지만 어떻게해야합니까?
아이디어 :
가이 플러그인이 반환하는는 QWidget을 만들 수 있도록 허용하고 최적의겠습니까? 필자가 인터페이스없이 인터페이스를 만들면 디자이너에게 플러그인을 작성하는 시점을 실제로 보지 마십시오. 아니면 내가 잘못 이해 했습니까?
class workspaceInterface {
virtual QWidget* createWorkspace(QWidget* parent);
... other useful functions...
}
class mySpecialWidget : public QWidget {
mySpecialWidget {
add a layout, add some buttons, maybe change the color
}
}
//plugin
#include "myspecialwidget.h"
class myPlugin : public QObject, public workspaceInterface {
QWidget* createWorkspace(QWidget* parent) {
return new MySpecialWidget();
}
....
}
이 코드의 모든
http://techbase.kde.org/Development/Tutorials/Writing_Qt_Designer_Plugins
나는, 하나 개의 프로젝트에 넣어 플러그인으로 컴파일 한 후 내 주요 응용 프로그램에 대한보고에로드합니다.의 I 그것의 인스턴스를 만들 것 내가 표시 할 위젯을 만들도록하십시오.이렇게하는 더 좋은 방법이 있습니까? 아니면이게 있습니까?
그게, 디자이너를위한 플러그인을 만들려고하지 않는 것. 사람들이 내 특별한 위젯을 사용하면 신경을 쓰지 않아도됩니다. 내가 원하는 것은 플러그인 메커니즘을 사용하여 런타임 중에 위젯에서로드 할 수 있어야한다는 것입니다. – chikuba
.ui 파일 또는 위젯 이름만으로 위젯을 만들어야합니까? –
내가 ui 파일을 가지고 있다고 생각하지 않습니다. 모든 위젯은 코드를 통해 eveything이 생성되는 h/cpp 파일입니다. 위젯을 만드는 함수로 플러그인 객체를 만들고 내 전문 위젯을 동일한 프로젝트에 넣는 것에 대해 생각해보십시오. 그게 못생긴가? – chikuba