//customwnd.h
#ifndef __CUSTOM_WINDOW_H__
#define __CUSTOM_WINDOW_H__
#include "qapplication.h"
#include "qwidget.h"
#include "messagebox"
#include "qpopumenu.h"
class CustomWnd:public QWidget
{
Q_OBJECT //如果要自定义槽和消息,必须在这里调用这个宏,否则自定义的槽和消息将不会起作用
public:
CustomWnd(QWidget *parent = 0,
const char *name = NULL);
~CustomWnd();
public slots: //自定义槽, 如果要自定义保护槽, 就声明为 protected slots:
void btnMessage(); //自定义无参数槽.
void slotTest(QString); //自定义槽.
signals:
//自定义信号, 如果要自定义保护信号, 就在protected: 后声明.
//自定义信号只需要在这里声明, 然后将槽连接到信号即可,无需实现信号函数.信号函数与槽函数的返回值类型在任何时候都可以不同; 而且如果不关心信号传递下来的参数, 信号函数与槽函数的参数列表也可以不相同, 但是如果要访问信号传递下来的任何参数时, 信号函数与槽函数的参数列表必须相同.
void explains(); //如果要自定义槽和信号, explains信号是必须的
void sigTest(QString str);
//自定义信号.
private:
QPushButton *m_pushBtnMsg;
};
#endif
//customwnd.cpp
CustomWnd::CustomWnd(QWidget *parent = 0, const
char *name = NULL)
:QWidget(parent, name)
{
m_pushBtnMsg = new
QPushButton("MessageButton", this);
m_pushBtnMsg->show();
connect(m_pushBtnMsg,
SIGNAL(clicked()), this, SLOT(btnMessage())); //将自定义槽连接到内部信号, 这里就跟消息映射函数相似.
connect(this,
SIGNAL(sigTest(QString)), this, SLOT(slotTest(QString))); //将自定义槽连接到自定义信号
}
CustomWnd::~CustomWnd()
{
delete m_pushBtnMsg;
}
void CustomWnd::btnMessage()
{
QMessageBox::warning(this,
"WARNING", "just for test: will emit test signal");
emit sigTest(QString("Test
Signal")); //发出自定义信号
}
void CustomWnd::slotTest(QString str)
{
QMessageBox::warning(this,
"Customized signal test", str);
}
//test.cpp
#include "customwnd.h"
int main(int argc, char **argv)
{
QApplication a(argc, argv);
CustomWnd wnd;
a.setMainWidget(&wnd);
wnd.show();
return a.exec();
}
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
分享到:
相关推荐
QT QT自定义信号和槽 QT自定义 信号和槽 QT信号。讲解怎么在 QT中自己定义消息和槽,QT编程可以看看
这个是QT编程中自定义信号与槽的一个编程示例,加入工程及可以调试。十分方便。
ArbStruct用于生成封装的类,UseArbStruct是主程序,它调用了ArbStruct
该示例演示了如何使用自定义数据作为信号和槽的参数,并且分别示例了参数为引用或指针时如何使用
06_信号和槽(二)自定义信号和槽的实例 源代码
嵌入式与物联网开发 QT 自定义信号槽.mp4
需要使用关键字 signals,在类中添加如下效果signals:// 信号只声明,不实现需要使用 权限+关键字slots,在类中添加如下效果// 槽需要声明+实现// 在应用程序输出中查看输出结果只需要在按钮的槽中发射信号即可 使用...
在一个应用程序设计中,为了实现一些特定的功能,...samp6_2CustomDialogsSignal.rar应用程序实现方式就是利用Qt的信号与槽机制,设计相应的信号和槽,将信号与槽关联起来,在进行某个操作时发射信号,槽函数自动响应。
QT入门之信号和槽的那些事有以下6部分 1、基础信号和槽 2、 自定义的信号和槽 3、 自定义的信号和槽发生重载的解决方法 4、 QString转char *类型 5、 信号连接信号 6、 断开连接 5、 QT4之前版本的信号和槽的连接...
嵌入式LINUX下的自定义信号和槽、树型结构的内存管理、网格布局管理、动态改变语言的代码。
【QT】使用qt designer设计的界面,放入VS2010中,以及实现自定义槽与按钮点击信号的连接。即点击按钮调用自己编的一个函数。
03-信号和槽01:自定义信号和槽函数的创建及使用
03-信号和槽02:自定义信号和槽的重载(带参数的信号和槽的使用方法
qRegisterMetaType 必须使用该函数的两种情况:1、如果非QMetaType内置类型要在 Qt 的属性系统中使用2、如果非QMetaType内置类型要在 queued 信号与槽 中使用。 资源中对于如何使用给出代码样例,可以直接运行。
QT 4.5是开跨平台GUI应用程序的理想...从Qt4.4以上已经可以自定义槽和信号. 例子中用到了资源文件:slot_test.qrc,让制作皮肤变的更简单. 国际化文件:test_zh.qm 在Linux(qdevelop编译)和windows(Qt Creator编译)都通过.
本例程是qt入门例程,用于教学。如果能独立将本例程实现,相信对于qt入门知识已经掌握差不多了。...本例包含设计窗口部件的两种方法(ui设计器和代码方式),连接系统定义好的信号槽,自定义信号发射及连接。
资源名称:汇文教育实地培训QT教程 资源目录:【】1.Qt介绍【】1.手工布局【】2.Qt对象命名与...自定义信号自定义槽【】5富文本支持【】介绍【】启动应用 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
信号和槽机制是 QT 的核心机制,要精通 QT 编程就必须对信号和槽有所了解。信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性,也是 QT 区别于其它工具包的重要地方。 在linux、windows等 GUI 工具...
该组合控件封装了一个自定义信号,会在颜色发生改变时被发送;若要使用该自定义控件,连接相应的槽函数即可。同时,我们还可以通过相应的成员方法在代码里去获取/设置组合控件的颜色。