VS和QT 编程中,解决控件的信号和槽

在使用QT CREATOR的时候如果要为某一个控件添加事件和对应的事件响应,方法是选中控件然后右键选择“转到槽”,但是如果在VS中编译QT项目时控件是没有这个选项的,这时候就要手动添加。步骤如下:

1)在.h文件中添加对应的信号与槽,如:

init_diag类的.h 文件中有个信号定义:可以在private ,public,protect任何区域

signals:

void start_can(int dev_num,int can_num,int can_brt,int mode);

在对应的父窗口的.h中有个槽函数定义:

private slots:
    void show_can_mesg(int dev_num,int can_num,int can_brt,int mode);

2)关联信号与槽:

connect(init_diag, SIGNAL(start_can(int, int, int, int )), this, SLOT(show_can_mesg(int , int , int , int)));

此处应该注意的是:信号与槽关联的时候只写书参数类型就可以,不要把变量也写出,写出变量就无法正确关联,程序运行不会报错,但是执行结果和预期的有差别

3)父窗口和子窗口用信号与槽实现信息交互的时候一定要注意,只有父窗口和子窗口都正确建立后才可以关联,否则编译不会出错,但是程序不能够按照预期的执行。正确示例1如下

QtGuiCAN::QtGuiCAN(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
   init_diag = new QtGuiClass(this);  //子窗口创建
   connect(init_diag, SIGNAL(start_can(int, int, int, int )), this, SLOT(show_can_mesg(int , int , int , int)));  //信号与槽关联

    test();
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt 是一个跨平台的应用程序框架,它提供了丰富的界面编程工具和功能,可以帮助我们轻松地创建各种类型的用户界面。与之相比,VC++ 是微软开发的一种编程语言,用于创建 Windows 平台上的应用程序。下面我将通过一个界面编程的例子来比较 Qt 和 VC++。 考虑一个简单的计算器程序,我们希望用户可以输入两个数字并选择执行的操作(如加法、减法等),然后显示计算结果。在 Qt ,我们可以使用 Qt Creator 创建一个窗口,添加文本框、按钮和标签等控件,并且通过信号机制实现控件间的交互。我们可以使用 Qt 提供的函数和类来处理用户的输入和计算逻辑,并将结果在标签显示出来。Qt 的界面编程方式非常直观和易于学习,使得开发过程更加高效和快捷。 而在 VC++ ,我们可以使用 Visual Studio 创建一个窗体应用程序,并通过拖放方式将文本框、按钮和标签等控件添加到窗体上。我们可以为按钮添加事件处理函数,然后在其编写用户输入和计算逻辑,并将结果显示在标签上。在 VC++ ,界面编程的实现相对比较繁琐,需要手动编写代码来处理用户交互和控件逻辑。 总结来说,Qt 的界面编程更加简便和高效,它提供了丰富的控件和功能,并且通过信号机制简化了控件间的交互。而 VC++ 则需要手动编写代码处理用户交互和控件逻辑,相对更加繁琐。因此,在开发界面复杂或需要跨平台的应用程序时,使用 Qt 进行界面编程更具优势。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值