有方法能让自定义插件(custum widget )显示在Qt Creator的工具栏里就最好了
我用的方法是在Qt Designer里做自定义插件,然后做一个界面生成xxx.ui文件,再加载到Qt Creator的工程里去,用自带的例子AnalogClock测试,出现问题,希望得到好心人帮助
过程如下:
1.在Qt Designer里创建一个Widget,从左侧工具栏拖入一个AnalogClock,保存为一个ac.ui文件;
2.用uic编译这个UI文件(uic ac.ui -o ui_ac.h)生成ui_ac.h文件;
3.在Qt Creator里创建一个GUI工程CustomPluginsTest,把ui_ac.h放入CustomPluginsTest-build-desktop文件夹
4.在工程中创建一个.h文件
ac.h
#ifndef AC_H
#define AC_H
#include "ui_ac.h"
class ac : public QWidget
{
//Q_OBJECT
public:
ac();
virtual ~ac();
private :
Ui::Form *wui;
};
#endif // AC_H
一个.cpp文件
ac.cpp
#include "ac.h"
ac::ac()
{
wui->setupUi(this);//以后写构造函数第一件事就是写这个函数
}
ac::~ac()
{
}
5.main函数改为:
#include <QtGui/QApplication>
#include "mainwindow.h"
#include "ac.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// MainWindow w;
// w.show();
ac w;
w.show();
return a.exec();
}
编译错误信息:
tmp/obj/debug_shared/ac.o:ac.cpp:(.text$_ZN7Ui_Form7setupUiEP7QWidget[Ui_Form::setupUi(QWidget*)]+0xce): undefined reference to `_imp___ZN11AnalogClockC1EP7QWidget'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\CustomPluginsTest.exe] Error 1
mingw32-make: *** [debug-all] Error 2
The process "C:/Qt/2010.05/mingw/bin/mingw32-make.exe" exited with code %2.
Error while building project CustomPluginsTest (target: Desktop)
When executing build step 'Make'