custum widget怎么在creator中使用

SanDy_O 2011-02-22 06:10:40
有方法能让自定义插件(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'
...全文
126 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
SanDy_O 2011-02-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dbzhang800 的回复:]
再次,使用这一个类,你要么是 头文件+cpp文件,要么是 头文件+库文件,两个都没采用,才……
[/Quote]
我写了一个头文件+cpp文件呀,如果不对的话,应该怎么用呢?能不能介绍一下“头文件+cpp文件和头文件+库文件方法”啊
dbzhang800 2011-02-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 sandy_o 的回复:]
有方法能让自定义插件(custum widget )显示在Qt Creator的工具栏里就最好了
[/Quote]
首先你要知道,在不在里面出现和你的问题没有什么联系。

其次,使用一个自定义widget,要么是提升法、要么是插件法,(二者其实完全一样,但前者操作更简单)

再次,使用这一个类,你要么是 头文件+cpp文件,要么是 头文件+库文件,两个都没采用,才是你这儿出错的根源

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧