提升法
eg.(定義一個新的QLable部件)
1、定義一個類
class Label : public base, public QLabel //可以支持多重繼承
2、在qt creator中打開ui編輯器,拖曳一個QLable兌現,提升,輸入提升的類名Label,勾選全部包含,添加,提升成功。
插件法
Qt Assistance:Creating Custom Widgets for Qt Designer
1、和提升法一樣,也需要先建立一個新的部件類
class AnalogClock : public QWidget
2、建立一個插件類
class AnalogClockPlugin : public QObject, public QDesignerCustomWidgetInterface
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface" FILE "analogclock.json")
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
explicit AnalogClockPlugin(QObject *parent = 0);
//……
};
並在其cpp中實現其相關函數
3、修改.pro文件
……
CONFIG += plugin
CONFIG += designer
CONFIG += debug_and_release
TEMPLATE = lib
QT += widgets designer
SOURCES += \
analogclock.cpp \
analogclockplugin.cpp
HEADERS += \
analogclock.h \
analogclockplugin.h
OTHER_FILES += analogclock.json
target.path = $$[QT_INSTALL_PLUGINS]/designer
1、定義一個類
class Label : public base, public QLabel //可以支持多重繼承
2、在qt creator中打開ui編輯器,拖曳一個QLable兌現,提升,輸入提升的類名Label,勾選全部包含,添加,提升成功。
插件法
Qt Assistance:Creating Custom Widgets for Qt Designer
1、和提升法一樣,也需要先建立一個新的部件類
class AnalogClock : public QWidget
2、建立一個插件類
class AnalogClockPlugin : public QObject, public QDesignerCustomWidgetInterface
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface" FILE "analogclock.json")
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
explicit AnalogClockPlugin(QObject *parent = 0);
//……
};
並在其cpp中實現其相關函數
3、修改.pro文件
……
CONFIG += plugin
CONFIG += designer
CONFIG += debug_and_release
TEMPLATE = lib
QT += widgets designer
SOURCES += \
analogclock.cpp \
analogclockplugin.cpp
HEADERS += \
analogclock.h \
analogclockplugin.h
OTHER_FILES += analogclock.json
target.path = $$[QT_INSTALL_PLUGINS]/designer
INSTALLS += target
……
4、在項目文件目錄下建一個空的analogclock.json文件5、編譯生成.dll文件,然后將其放置到C:\Qt\Qt5.2.0\5.2.0\msvc2012_64_opengl\plugins\designer下就可以在qt designer中使用該自定義插件了。
注:如果需要在qt Creator中使用該插件,由於Qt SDK for Windows的兩部分是由不同編譯環境編譯而成,QtCreator是由msvc編譯,Qt庫是由mingw編譯,所以還需要將其復制到C:\Qt\Qt5.2.0\Tools\QtCreator\bin\plugins\designer,還要解決方法有以下幾種:
1) 下載QT Creator的源碼然后在QT Creator中用MinGW編譯
2) 將插件在Visual Studio下編譯Build the plugin with Visual Studio
3) 編譯QT Creator源碼,但將build key checking關掉
之后就可以在 QtCreator中打開項目的界面文件(*.ui),此時QtCreator允許你使用集成的QtDesigner來編輯這個ui文件,然后打開菜單項“工具->界面編輯器->About Qt Designer plugins...”即可查看哪些插件加載成功了,哪些未加載成功(在單獨運行的QtDesigner中,打開“幫助->關於插件”菜單也可查看插件加載成功與否)。