Qt中的信号和槽以及自定义对话框

一、信号和槽

     Qt中使用信号和槽机制来完成对象之间的协同操作,信号和槽都是函数,例如,单击窗口上的一个按钮时,想要弹出一个对话框,那么可以将这个按钮的单击信号和自定义的槽关联起来,在这个槽中创建一个对话框并且显示它。这样单击信号时就会发射信号,进而执行槽来显示一个对话框。

例子:

1、信号和槽的手动关联

(1)在Qt Creator上新建一个项目,选择 文件——新建文件或项目——Application——Qt Widgets Application,项目名为mydialog1,基类选择QWidget,类名为MyWidget。双击mywiget.ui文件,在设计模式中往界面添加一个Label和一个Push Button,在属性栏中将Push Button的objectName改为showChildButton,然后更改Label的显示文本为“我是主界面!”,更改按钮的显示文本为“显示子窗口”。



(2)双击mywidget.h文件,在MyWidget类声明的最后添加槽的声明

public slots:
void showChildDialog();
这里自定义了一个槽,槽一般使用slots关键字进行修饰(Qt4中必须使用,Qt5中使用新的connect语法时可以不用,为了与一般函数进行区分,建议使用),这里使用的public slots,表明这个槽可以在类外被调用。

(3)到源文件中编写这个槽的实现代码

Qt Creator提供了一个快速添加定义的方法:在showChildDialog函数上右击,在弹出的级联菜单中选择Refactor菜单项,然后点击“在mywidget.cpp添加定义”,确认后,编辑器会转到mywidget.cpp文件中,并且已自动创建了showChildDialog()槽的定义。这种方法也用于先在源文件中添加,然后自动在头文件中添加声明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值