Qt自定义窗口部件Word文档格式.docx

上传人:b****1 文档编号:13162143 上传时间:2022-10-07 格式:DOCX 页数:14 大小:153.19KB
下载 相关 举报
Qt自定义窗口部件Word文档格式.docx_第1页
第1页 / 共14页
Qt自定义窗口部件Word文档格式.docx_第2页
第2页 / 共14页
Qt自定义窗口部件Word文档格式.docx_第3页
第3页 / 共14页
Qt自定义窗口部件Word文档格式.docx_第4页
第4页 / 共14页
Qt自定义窗口部件Word文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Qt自定义窗口部件Word文档格式.docx

《Qt自定义窗口部件Word文档格式.docx》由会员分享,可在线阅读,更多相关《Qt自定义窗口部件Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

Qt自定义窗口部件Word文档格式.docx

9.public:

10. 

HexSpinBox(QWidget 

*parent 

0);

11. 

12.protected:

13. 

QValidator:

State 

validate(QString 

&

text, 

int 

pos) 

const;

14. 

valueFromText(const 

QString 

text) 

15. 

textFromValue(int 

value) 

16. 

17.private:

18. 

QRegExpValidator 

*validator;

19.};

20. 

21.#endif 

HexspinBox.cpp

1.#include 

QtGui>

2.#include 

"

hexspinbox.h"

3.HexSpinBox:

*parent) 

4. 

QSpinBox(parent) 

5.{ 

6. 

setRange(0, 

255);

validator 

new 

QRegExpValidator(QRegExp("

[0-9A-Fa-f]{1,8}"

), 

this);

8.} 

9. 

10.QValidator:

HexSpinBox:

const 

11.{ 

12. 

return 

validator->

validate(text, 

pos);

13.} 

15.int 

16.{ 

17. 

bool 

ok;

text.toInt(&

ok, 

16);

19.} 

21.QString 

22.{ 

23. 

QString:

number(value, 

16).toUpper();

24.} 

2、在需要开发的项目中的窗口中,

1、用QtDesigner创建一个新的窗体main.ui,把控件箱里的QSpinBox添加到窗体中。

2、右击微调框,选择“Promoteto”上下文菜单。

3、在弹出的对话框中,类名处填写“HexSpinBox”,头文件填写“hexspinbox.h”

好了。

在ui生成的包含有QSpinBox的控件文件中,ui的源代码里面多了一段

customwidgets>

<

customwidget>

 

class>

HSpinBox<

/class>

extends>

QSpinBox<

/extends>

header>

hspinbox.h<

/header>

/customwidget>

包含文件变为"

在QtDesigner中,QSpinBox表示的控件为HexSpinBox,并且可以设置所有的QSpinBox的属性。

可以在VS2008中编译一下main.ui文件,从ui_main.h源代码中可以知道,引入的控件是:

QtGui/QTableWidget>

QtGui/QToolBar>

QtGui/QWidget>

4.#include 

hspinbox.h"

5. 

6.QT_BEGIN_NAMESPACE 

8.class 

Ui_QMainClass 

9.{ 

10.public:

QWidget 

*centralWidget;

QPushButton 

*pushButton;

QTableWidget 

*tableWidget;

*spinBox;

HSpinBox 

*hspinBox;

升级法的缺点是不能在QtDesigner中设置自定义控件自己的特有属性,也不能够绘制自己。

这些问题可以用插件法解决。

插件法

1.VS中创建Qt4DesignPlugin工程,名称叫custom

自动建立如下几个文件:

自定义控件:

custom.h,custom.cpp

插件:

customplugin.h,customplugin.cpp

源代码如下:

custom.h

CUSTOM_H 

ui_test.h"

custom 

8.public:

custom(QWidget 

~custom();

11.private:

Ui:

Form 

ui;

13.};

15.#endif 

// 

custom.cpp

custom.h"

2. 

3.custom:

QWidget(parent) 

ui.setupUi(this);

7.} 

9.custom:

~custom() 

10.{ 

12.} 

customplugin.h

CUSTOMPLUGIN_H 

3. 

QDesignerCustomWidgetInterface>

6.class 

customPlugin 

QObject, 

QDesignerCustomWidgetInterface 

7.{ 

Q_INTERFACES(QDesignerCustomWidgetInterface) 

11.public:

customPlugin(QObject 

isContainer() 

isInitialized() 

QIcon 

icon() 

domXml() 

group() 

19. 

includeFile() 

name() 

21. 

toolTip() 

22. 

whatsThis() 

*createWidget(QWidget 

*parent);

24. 

void 

initialize(QDesignerFormEditorInterface 

*core);

25. 

26.private:

27. 

initialized;

28.};

29. 

30.#endif 

customplugin.cpp

QtCore/QtPlugin>

customplugin.h"

4.customPlugin:

QObject(parent) 

initialized 

false;

10.void 

customPlugin:

*/*core*/) 

if 

(initialized) 

return;

true;

15.} 

17.bool 

18.{ 

20.} 

22.QWidget 

*customPlugin:

createWidget(QWidget 

23.{ 

custom(parent);

25.} 

26. 

27.QString 

28.{ 

custom"

;

30.} 

31. 

32.QString 

33.{ 

34. 

My 

Plugins"

35.} 

36. 

37.QIcon 

38.{ 

39. 

QIcon();

40.} 

41. 

42.QStri

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 交规考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1