qtcreator-qt中用信号和槽导致程序挂掉

问题描述

qt中用信号和槽导致程序挂掉
工具是qt creator,qt库版本为5.4,环境是windows 7,在我的程序中有一个信号的参数是(QSringdoubledoubledoubledouble)然后和在同一个类中的私有成员类的信号connect,最后这个私有成员类将此信号和这个私有成员类的私有成员类的槽函数connect,结果运行起来会让程序无缘无故挂掉。调试也发现不了原因,我在猜想是不是因为QString的原因,求有经验的大神赐教

解决方案

给程序的每一步都加个log看看是哪儿的问题,信号和槽只是一种绑定的关系,不会因此造成程序崩溃的,造成程序崩溃可能是槽函数里的某行代码处了问题

解决方案二:
我在每个槽函数开始都加了debug输出语句,有时候会输出,但是基本大部分时候是不会输出的,而且槽函数还没加处理函数

解决方案三:
还有很重要的一点,最初的信号是在线程中发送的,connect的信号是主线程里的

解决方案四:
qq123456789

解决方案五:
把代码贴出来看。你这样说,怎么诊断问题呢?QT中信号和槽本身肯定是不会有问题的,多数是使用上的问题

时间: 2024-10-02 18:22:53

qtcreator-qt中用信号和槽导致程序挂掉的相关文章

Qt 自定义信号与槽

注 对象与槽理解 //第一个参数lineEdit是激发事件对象,信号中的方法必须在对象中存在,并在对象类头文件signals下定义, //第二个参数信号, //第三个参数this是槽方法所属类的对象,且必须在对象类的头文件的slots下定义 //第四个参数槽方法类,槽 方法 connect(lineEdit,SIGNAL(textChanged(QString)),this,SLOT(showArea())); 使用自定义的信号和槽,需要注意以下几点: 1.类的声明和实现分别放在.h和.cpp文

qt 信号与槽的发送和接收

问题描述 qt 信号与槽的发送和接收 . . . . 最后结果打印不出来... 解决方案 信号和槽函数做了绑定了吗? 解决方案二: 楼主你connect的是&t发送的fasong(QString)信号 而你代码里面是this->fasong(zhi); ps:这个t是啥.... 解决方案三: 关于Qt信号/槽的参数类型Qt之信号与槽关于Qt中信号槽机制

qt ui设计界面 创建信号与槽 原理,

在ui设计界面,设计信号和槽时,会把信息存在ui文件中,在编译时会在成成的头文件**.h 中把连接代码加上. ui界面添加信号和槽有两种方法 第一种: 在界面选择操作对象->右键->转到槽->选择信号->qtCreator 自动生成 槽方法->编写槽方法.此方法在ui文件中并不会保存响应信号与槽信息,因为它生成的槽格式固定,如on_countBtn_clicked.在编译时加入QMetaObject::connectSlotsByName(MainWindow);方法就可以自

[Qt教程] 第44篇 进阶(四)信号和槽

[Qt教程] 第44篇 进阶(四)信号和槽 楼主  发表于 2013-9-12 16:48:59 | 查看: 298| 回复: 0 信号和槽 版权声明 该文章原创于Qter开源社区 导语 在前面的内容中已经多次用到过信号和槽了,这一节我们将详细讲解信号和槽的机制和使用方式.大家可以在帮助中查看Signals& Slots关键字. 环境:Windows Xp + Qt 4.8.5+QtCreator2.8.0 目录 一.信号和槽机制 二.信号和槽的自动关联 三.信号和槽的高级应用 正文 一.信号和

【C/C++学院】(13)QT开发技术/QT 基础/QT 信号和槽

Qt是一个跨平台的c++图形用户界面应用程序框架. Qt安装说明: windows下环境变量path需要加入以下路径,以便QT写的程序可以离开QT开发环境独立运行 C:\Qt\Qt5.2.0\5.2.0\mingw48_32\bin\;C:\Qt\Qt5.2.0\Tools\mingw48_32\bin; linux下需要设置.bash_profile文件 PATH中加入/opt/Qt5.2.0/5.2.0/gcc/bin 用root用户登录系统,进入/usr/lib目录后执行 ln libGL

c-C语言中用fgets()函数,输入过多会导致程序自动关闭!!

问题描述 C语言中用fgets()函数,输入过多会导致程序自动关闭!! 就是这个代码,只要输入的字符数量超过9,程序就自动关了. #include int main(void) { char name[10]; char name2[100]; char* c; c = fgets(name,9,stdin); // printf("%s%s",name,c); getchar(); getchar(); getchar(); return 0; } 解决方案 不是越界...fgets

qt c++-QT使用中关于布局与信号与槽的基础问题,求高手来看看

问题描述 QT使用中关于布局与信号与槽的基础问题,求高手来看看 1.假如在一个QDialog中左边是一个QTreeWidget右边添加一个Qwidget空间,QWidget里面放4个QLabel,用GridLayout布局平分,现在实现双击某一个label,其余3个label隐藏,而只有一个label出现并且填充满整个Qwidget,怎么实现这个过程? 2.在一个QT的button槽函数里,实现对视频文件回放:打开文件解码(解码产生一个getImage(QImage*)信号),然后由这个信号关联

6.QT信号和槽

 新建项目SignalAndSlot项目 编写代码如下: mysignal.h #ifndef MYSIGNAL_H #define MYSIGNAL_H   #include <QObject>   class MySignal : public QObject {     Q_OBJECT public:     explicit MySignal(QObject *parent = 0);   signals:     void sig();   public slots:   };

在Qt Creator 和在 vs2012 里添加信号和槽

Qt  的窗口部件通过发射信号(signal)来表明一个用户的动作已经发生了或者是一个状态已经改变了. 如点击一个QPushButton时,按钮会发送一个clicked()信号,信号可以与函数(在qt里称做槽slot)相连接 可以把信号理解为c#里的事件 在vs2012里和在Qt Creator里添加信号和槽不一样,这里把两种环境下怎么添加详细说明一下   1.在vs2012里添加信号和槽 新建一个qt的项目QtDemo   在qtdeom.h里添加槽 private slots: void B