QT5中如何自定义窗口部件
提升法
1、定义一个类
class Label : public base, public QLabel //可以支持多重继承
2、在qt creator中打开ui编辑器,拖曳一个QLable兑现,提升,输入提升的类名Label,勾选全部包含,添加,提升成功。
插件法
Qt Assistance:Creating Custom Widgets for Qt Designer
1、和提升法一样,也需要先建立一个新的部件类
class AnalogClock : public QWidget
2、建立一个插件类
class AnalogClockPlugin : public QObject, public QDesignerCustomWidgetInterface
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetInterface" FILE "analogclock.json")
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
explicit AnalogClockPlugin(QObject *parent = 0);
//……
};
并在其cpp中实现其相关函数
3、修改.pro文件
……
CONFIG += plugin
CONFIG += designer
CONFIG += debug_and_release
TEMPLATE = lib
QT += widgets designer
SOURCES += \
analogclock.cpp \
analogclockplugin.cpp
HEADERS += \
analogclock.h \
analogclockplugin.h
OTHER_FILES += analogclock.json
target.path = $$[QT_INSTALL_PLUGINS]/designer
INSTALLS += target
……
4、在项目文件目录下建一个空的analogclock.json文件
5、编译生成.dll文件,然后将其放置到C:\Qt\Qt5.2.0\5.2.0\msvc2012_64_opengl\plugins\designer下就可以在qt designer中使用该自定义插件了。
注:如果需要在qt Creator中使用该插件,由于Qt SDK for Windows的两部分是由不同编译环境编译而成,QtCreator是由msvc编译,Qt库是由mingw编译,所以还需要将其复制到C:\Qt\Qt5.2.0\Tools\QtCreator\bin\plugins\designer,还要解决方法有以下几种:
1) 下载QT Creator的源码然后在QT Creator中用MinGW编译
2) 将插件在Visual Studio下编译Build the plugin with Visual Studio
3) 编译QT Creator源码,但将build key checking关掉
之后就可以在 QtCreator中打开项目的界面文件(*.ui),此时QtCreator允许你使用集成的QtDesigner来编辑这个ui文件,然后打开菜单项“工具->界面编辑器->About Qt Designer plugins...”即可查看哪些插件加载成功了,哪些未加载成功(在单独运行的QtDesigner中,打开“帮助->关于插件”菜单也可查看插件加载成功与否)。
QT5中如何自定义窗口部件的更多相关文章
- Qt入门(19)——自定义窗口部件
我们介绍可以画自己的第一个自定义窗口部件.我们也加入了一个有用的键盘接口.我们添加了一个槽:setRange(). void setRange( int minVal, int maxV ...
- Kivy 中文教程 实例入门 简易画板 (Simple Paint App):1. 自定义窗口部件 (widget)
1. 框架代码 用 PyCharm 新建一个名为 SimplePaintApp 的项目,然后新建一个名为 simple_paint_app.py 的 Python 源文件, 在代码编辑器中,输入以下框 ...
- Qt自定义窗口部件
QtDesigner自定义窗口部件有两种方法:改进法(promotion)和插件法(plugin) 改进法 1.改进法之前,要先写好子类化QSpinBox后的HexspinBox.h和Hexs ...
- C++ GUI Qt4编程-创建自定义窗口部件
C++ GUI Qt4编程-创建自定义窗口部件 Qtqt4 通过Qt窗口部件进行子类化或者直接对QWidget进行子类化,就可以创建自定义窗口部件,下面示范两种方式,并且也会说明如何把自定义窗口部 ...
- Qt学习之自定义窗口部件
自定义Qt窗口部件 实现一个十六进制的SpinBox,一般SpinBox只支持十进制整数,但是可以子类化方法实现该功能 需重新实现以下虚函数 virtual QString textFromValue ...
- Tkinter类之窗口部件类
Tkinter类之窗口部件类 Tkinter支持15个核心的窗口部件,这个15个核心窗口部件类列表如下:窗口部件及说明:Button:一个简单的按钮,用来执行一个命令或别的操作.Canvas:组织图形 ...
- QT自定义窗口
qt 中允许自定义窗口控件,使之满足特殊要求, (1)可以修改其显示,自行绘制 (2)可以动态显示 (3)可以添加事件,支持鼠标和键盘操作 自定义控件可以直接在QtDesigner里使用,可以直接加到 ...
- 第15.34节 PyQt(Python+Qt)入门学习:containers容器类部件QStackedWidget堆叠窗口部件详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 StackedWidget堆叠窗口部件为一系列窗口部件的堆叠,对应类为QStackedWi ...
- 第二十八章、containers容器类部件QStackedWidget堆叠窗口部件详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 StackedWidget堆叠窗口部件为一系列窗口部件的堆叠,对应类为QStackedWi ...
随机推荐
- Android 删除短信
1.删除短信的函数,一条一条的删除所有短信 /* * Delete all SMS one by one */ public void deleteSMS() { try { ContentResol ...
- POJ 1001 Exponentiation
题意:求c的n次幂……要求保留所有小数…… 解法:一开始只知道有BigInteger……java大数+模拟.第一次写java大数……各种报错各种exception……ORZ 没有前导0和小数后面的补位 ...
- UVA 11928 The Busy Dog
题意:一只狗被拴在杆子上,从起点开始按直线依次跑到给出的点最后回到起点问绕杆子几圈,逆时针为正,顺时针为负,撞到杆子输出Ouch!. 解法:用叉积判断方向,用余弦定理求出以杆子为顶点的角,加和除以2π ...
- Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tes ...
- POJ 1904 King's Quest 强连通分量+二分图增广判定
http://www.cnblogs.com/zxndgv/archive/2011/08/06/2129333.html 这位神说的很好 #include <iostream> #inc ...
- [JDBC-2] JDBC CURD
package com.amuos.jdbc.curd; import java.sql.Connection; import java.sql.ResultSet; import java.sql. ...
- 傲游浏览器4,傲游浏览器5如何一键批量打开url链接。
傲游浏览器批量打开网址的插件没用了.有很多网友发了方法也无法实现.实际上,是可以实现傲游浏览器4,傲游浏览器5一键批量打开url链接的.我来告诉大家如何来实现.最新的M5都能使用.在收藏夹添加一个收藏 ...
- matlab 函数说明--fspecial
好吧,这个函数在图像处理中运用得非常广泛,虽然我还是觉得不知道为啥要取这个名字,fspecial的作用如下: 产生一个预定义的2D 滤波器(create a predefined 2D ...
- Linux内核,文件系统移植过程中出现的一些问题与解决办法
1.bootm地址和load address一样 此种情况下,bootm不会对uImage header后的zImage进行memory move的动作,而会直接go到entry point开始执行. ...
- Java网络编程(客户端和服务端原理)
运行下面的程序,浏览器端输入自己主机的IP地址+端口号(8888),会看到服务器返回的数据内容,Eclipse控制台会打印显示收到的信息, 通过我们自定义的服务器,可以看到浏览器端向服务器发送的请求信 ...