【原创】Qt自定义窗口部件
改进法
#ifndef HEXSPINBOX_H
#define HEXSPINBOX_H
#include <QSpinBox>
class QRegExpValidator;
class HexSpinBox : public QSpinBox
{Q_OBJECTpublic:HexSpinBox(QWidget *parent = 0);protected:QValidator::State validate(QString &text, int &pos) const;int valueFromText(const QString &text) const;QString textFromValue(int value) const;private:QRegExpValidator *validator;
};#endif
#include <QtGui>
#include "hexspinbox.h"
HexSpinBox::HexSpinBox(QWidget *parent): QSpinBox(parent)
{setRange(0, 255);validator = new QRegExpValidator(QRegExp("[0-9A-Fa-f]{1,8}"), this);
}QValidator::State HexSpinBox::validate(QString &text, int &pos) const
{return validator->validate(text, pos);
}int HexSpinBox::valueFromText(const QString &text) const
{bool ok;return text.toInt(&ok, 16);
}QString HexSpinBox::textFromValue(int value) const
{return QString::number(value, 16).toUpper();
}
#include <QtGui/QTableWidget>
#include <QtGui/QToolBar>
#include <QtGui/QWidget>
#include "hspinbox.h"QT_BEGIN_NAMESPACEclass Ui_QMainClass
{
public:QWidget *centralWidget;QPushButton *pushButton;QTableWidget *tableWidget;QSpinBox *spinBox;HSpinBox *hspinBox;
插件法
custom.h
#ifndef CUSTOM_H
#define CUSTOM_H
#include <QtGui/QWidget>
#include "ui_test.h"
class custom : public QWidget
{Q_OBJECT
public:custom(QWidget *parent = 0);~custom();
private:Ui::Form ui;
};#endif // CUSTOM_H
custom.cpp
#include "custom.h"custom::custom(QWidget *parent): QWidget(parent)
{ui.setupUi(this);
}custom::~custom()
{}
customplugin.h
#ifndef CUSTOMPLUGIN_H
#define CUSTOMPLUGIN_H#include <QDesignerCustomWidgetInterface>class customPlugin : public QObject, public QDesignerCustomWidgetInterface
{Q_OBJECTQ_INTERFACES(QDesignerCustomWidgetInterface)public:customPlugin(QObject *parent = 0);bool isContainer() const;bool isInitialized() const;QIcon icon() const;QString domXml() const;QString group() const;QString includeFile() const;QString name() const;QString toolTip() const;QString whatsThis() const;QWidget *createWidget(QWidget *parent);void initialize(QDesignerFormEditorInterface *core);private:bool initialized;
};#endif // CUSTOMPLUGIN_H
#include "custom.h"
#include <QtCore/QtPlugin>
#include "customplugin.h"
customPlugin::customPlugin(QObject *parent): QObject(parent)
{initialized = false;
}void customPlugin::initialize(QDesignerFormEditorInterface */*core*/)
{if (initialized)return;initialized = true;
}bool customPlugin::isInitialized() const
{return initialized;
}QWidget *customPlugin::createWidget(QWidget *parent)
{return new custom(parent);
}QString customPlugin::name() const
{return "custom";
}QString customPlugin::group() const
{return "My Plugins";
}QIcon customPlugin::icon() const
{return QIcon();
}QString customPlugin::toolTip() const
{return QString();
}QString customPlugin::whatsThis() const
{return QString();
}bool customPlugin::isContainer() const
{return false;
}QString customPlugin::domXml() const
{return "<widget class=\"custom\" name=\"custom\">\n"" <property name=\"geometry\">\n"" <rect>\n"" <x>0</x>\n"" <y>0</y>\n"" <width>100</width>\n"" <height>100</height>\n"" </rect>\n"" </property>\n""</widget>\n";
}QString customPlugin::includeFile() const
{return "custom.h";
}Q_EXPORT_PLUGIN2(custom, customPlugin)
- Q_EXPORT_PLUGIN2(customWidgetPlugin, CustomWidgetPlugin) // 第一个参数为插件的名字,第二个是插件类的名字(而不是自定义控件的类名)
【原创】Qt自定义窗口部件相关推荐
- Qt4_在Qt设计师中集成自定义窗口部件
在Qt设计师中集成自定义窗口部件 在Qt设计师中使用自定义窗口部件之前,我们必须让Qt设计师先察觉到它们的存在.有两种方法可以完成这一任务:改进法(promotion)和插件法(pluigin). 改 ...
- QT自定义窗口插件在QT Creator的应用
根据<C++ GUI Programming with Qt 4,Second Edition>中第5章的"在Qt设计师中集成自定义窗口部件"小节,使用插件法生成的窗口 ...
- python做一个窗口样式_python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法...
本文借用HTML的css语法,将样式表应用到窗口部件.这里只是个简单的例子,实际上样式表的语法很丰富. 以下类似于css: StyleSheet = """ QCombo ...
- qt自定义窗口添加父窗口后,显示不出来
提要 继承于QDialog的类,在被其它类创建的改对象时,没设置父窗口前显示正常,设置了父窗口后显示不出来. 自定义窗口的构造函数 configBtnNameDialog::configBtnName ...
- 【QT】QT从零入门教程(十一):QT自定义窗口
首先是借鉴了网上的博客,实现无边框,自由拖动的自定义窗口效果. #ifndef CUSTOMWINDOW_H #define CUSTOMWINDOW_H #include <QtGui&g ...
- qt自定义窗口,其绘制的窗口边框线显示不全
引言 自定义窗口,该窗口包含标题栏,默认整个窗口的边框线为蓝色,当点击该窗口的时候,窗口的边框线便为红色.程序在运行的时候,窗口的边框线只显示了左右两边的线,没有显示上下边的线. 示例 效果: 解决方 ...
- QT自定义窗口,可拉伸
//头文件 #ifndef CUSTOMDIALOG_H #define CUSTOMDIALOG_H#include <QDialog>// 定义当前鼠标所处状态; enum Windo ...
- qt 自定义窗口customwindow
原文链接:https://qt.developpez.com/tutoriels/braindeadbzh/customwindow/
- Qt窗口部件——QFrame/QAbstractButton/QLineEdit/QAbstractSpinBox/QAbstractSlider
Qt其他窗口部件 1. QFrame 1.1 QLabel 1.2 QLCDNumber 1.3 QStackedWidget 1.4 QToolBox 2. QAbstractButton 2.1 ...
最新文章
- 这位年仅27岁的阿联酋人工智能部长,竟计划2117年火星造城,真是有钱帅气又任性!
- [ASM C/C++] C语言数组
- 解決 centos -bash: vim: command not found
- 关于码云的一些基本知识_一些关于 CPU 的基本知识
- vs 未能找到符号_意大利甲级赛事分析:尤文图斯vs卡利亚里
- 95-130-410-源码-source-RabbitMQ相关-RabbitMQ Connector
- Atitit alldiaryindex v1 t717 目录 1. Fix	1 2. Diary detail	1 2.1. Diary 1987---2016.12	1 2.2. Diary20
- Java内存模型基础知识
- 聚焦四个重组,构建基于IPD的卓越研发体系(3.0版)
- AppCrash explorer问题(解决方法)
- 如何区分电梯卡为id卡ic卡_门禁卡ID卡和IC卡从外表怎么区分?
- mysql的基础查阅
- 小程序ios页面数据空白问题
- 伤逝有感 文/江湖一剑客
- 奇特的锡纸海鲜小吃:吃到嗨都不会发胖的辣卤海鲜!值得开一家哦!
- wi7计算机如何查看隐藏的文件夹,win7隐藏的文件夹怎么显示?隐藏文件夹查看及设置方法...
- 埃森哲 X SAP:智慧转型高手论剑
- 6.网络基础-Network Monitor和Httpwatch工具
- 加入计算机网络协会申请书,大学生退出协会申请书
- miui android耗电快,你们的小米手机更新MIUI10之后耗电吗?试试这个方法解决吧
热门文章
- svn checkout 提示“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。”解决方法...
- javascript数组对象
- Opera Unite 用户指南
- Entity Framework 6.x Code First 基础
- java的第一个程序 ----Hello World
- Google的银河英雄传说
- ggsci | ggplot2的颜色标度拓展包(1):科研配色风格
- 安卓蓝牙键盘切换输入法_超薄无线蓝牙双模罗技K580键盘,自由切换享受打字快乐...
- 零基础学web前端难吗?新手该怎么学?
- HTTP请求Content-Type你知道是做什么的吗?