Qt自定义窗口部件Word文档格式.docx
- 文档编号:13162143
- 上传时间:2022-10-07
- 格式:DOCX
- 页数:14
- 大小:153.19KB
Qt自定义窗口部件Word文档格式.docx
《Qt自定义窗口部件Word文档格式.docx》由会员分享,可在线阅读,更多相关《Qt自定义窗口部件Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Qt 自定义 窗口 部件