当前位置:首页 > 嵌入式软件
[导读]

通过对一个已经存在的Qt窗口部件进行子类化或者直接对QWidget进行子类化,就可以创建自定义窗口部件。以下直接对已有的Qt窗口部件进行子类化:

如下通过对QLineEdit进行子类化来实现自已需要的窗口部件,参考代码如下:

/**********************子类化的头文件*****************************/

#ifndefLINEEDIT_H

#defineLINEEDIT_H

#include<QLineEdit>

#include<QMouseEvent>

classLineEdit:publicQLineEdit

{

Q_OBJECT

public:

explicitLineEdit(QObject*parent=0);

protected:

voidmouseDoubleClickEvent(QMouseEvent*);

};

#endif//LINEEDIT_H

/**********************子类化的源文件*****************************/

#include"lineedit.h"

#include<QMessageBox>

LineEdit::LineEdit(QObject*parent)

{

}

//重新实现QLineEdit类的mouseDoubleClickEvent(QMouseEvent*event)

//事件处理函数,从而达到双击LineEdit的时候会有一个消息框弹出

voidLineEdit::mouseDoubleClickEvent(QMouseEvent*event)

{

QMessageBox::information(this,tr("提示"),tr("你是对的!"));

event->ignore();

}

以上是我自己实现的自己的一个LineEdit类,我双击这个LineEdit控件,就会弹出个消息框出来。

首先建一个工程,把上面的两个文件放到工程目录下面,然后来实现自己的代码:

/**********************主窗口的头文件*****************************/

#ifndefMYWIDGET_H

#defineMYWIDGET_H

#include<QWidget>

#include"lineedit.h"

classMyWidget:publicQWidget

{

Q_OBJECT

public:

explicitMyWidget(QWidget*parent=0);

private:

LineEdit*lineedit;

};

#endif//MYWIDGET_H

/**********************主窗口的源文件*****************************/

#include"mywidget.h"

#include<QHBoxLayout>

MyWidget::MyWidget(QWidget*parent):

QWidget(parent)

{

lineedit=newLineEdit;

QHBoxLayout*hlayout=newQHBoxLayout;

hlayout->addWidget(lineedit);

setLayout(hlayout);

}

/**********************显示主窗口的源文件*****************************/

#include<QApplication>

#include<QTextCodec>

#include"mywidget.h"

intmain(intargc,char*argv[])

{

QApplicationapp(argc,argv);

QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

MyWidget*mywidget=newMyWidget;

mywidget->show();

returnapp.exec();

}

以下是运行后的一个效果:

说明:以上只是个测试程序,没有实际应用价值,具体的应用还在于实际工作中的需求。



换一批

延伸阅读

[科技喵] 向 Qt 致敬,GOSP v1.1 工具发布

向 Qt 致敬,GOSP v1.1 工具发布

摘要Qt是欧洲人创始的一个优秀的C++开发框架,API简单易用,社区庞大,资源丰富;但Qt太重量级了(需要很多的RAM和ROM,非常复杂)。为了解决这个问题,我开发了GOSP这个框架。GOSP在不依赖Qt的前提下,提供了类似Qt的API接口...

关键字: 开发 QT

[科技前线] Qt 5.15 RC 发布

Qt 5.15 RC 发布

Qt 5.15 首个 RC 版已发布,开发团队表示目前正在为 Qt 5.15 寻求最后的测试,希望用户在试用后能立即反馈错误。此外,团队希望在5月19日左右发布稳定版,同时确认Qt 5.15.1 将在稳定版发布不久之后推出,以修复 5.15...

关键字: QT

[科技前线] 开发者讨论将 Qt 5 代码移植到 Qt 6 的工具

开发者讨论将 Qt 5 代码移植到 Qt 6 的工具

Qt 是一个跨平台的C++图形用户界面应用程序框架。它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。虽然 Qt 作为开源项目的未来还不太清...

关键字: QT

[科技喵] KDE 社区称 Qt 公司正考虑仅面向付费用户提供新版本

KDE 社区称 Qt 公司正考虑仅面向付费用户提供新版本

近日,一封题为 Qt, Open Source and corona 的邮件在 KDE 社区引发了广泛的讨论,其内容主要是指出 Qt 公司正考虑在 Qt 发布新版后的 12 个月内,新版本将限制为仅面向付费客户提供(即不将其作为开源项目发布...

关键字: QT kde

[科技前线] Win10界面改头换面!教你换上Win10最新图标

Win10界面改头换面!教你换上Win10最新图标

去年微软在发布Win10X效果图时,意外带出了几个新图标,当时模模糊糊的也看不太清楚。最近,部分Win10用户开始陆陆续续收到新图标推送。如果说旧图标是手稿的话,那么新图标就是彩色上漆版了!整个Win10界面简直改头换面! Win10图标...

关键字: Windows 微软 10 图标 界面

嵌入式软件

15473 篇文章

关注

发布文章

技术子站

关闭