• 4562阅读
  • 9回复

[提问]connect函数的触发信号如果是int型要怎么写 [复制链接]

上一主题 下一主题
离线wangyan23888
 

只看楼主 正序阅读 楼主  发表于: 2013-03-09
比如我想写这样的一个connect函数:

connect(, SIGNAL(), this, SLOT(UpdateEditText()));
我的触发信号是 int fanhuizhi != 0 就会触发信号,
这样的话不知道前面的connect函数的前2个参数要怎么写,才能一检测到fanhuizhi!=0就会执行槽函数。
离线pxiao_xiao

只看该作者 9楼 发表于: 2013-03-11
void Widget::panduan_fanhui()
{
     qdebug<<""<<"1111";
     ui->TextEdid->SetText("1")
}

给你的ui->TextEdid->SetText("1")上锁  不知道是不是你的界面线程问题
离线wangyan23888

只看该作者 8楼 发表于: 2013-03-11
回 5楼(pxiao_xiao) 的帖子
问你个问题:
1.cpp中我有个地方调用2.cpp中的函数的
jiemian->panduan_fanhui();
2.cpp中函数panduan_fanhui()原型:
void Widget::panduan_fanhui()
{
qdebug<<""<<"1111";
ui->TextEdid->SetText("1")
}

这样之后编译时可以通过的,debug也有信息输出,执行到ui->TextEdid->SetText("1")
后就终止了,去掉ui->TextEdid->SetText("1")这一句程序正常运行,不知道是为什么
离线wangyan23888

只看该作者 7楼 发表于: 2013-03-10
回 5楼(pxiao_xiao) 的帖子
事同类型的,直接异常中断了,我试试不用connect的,直接调用
离线wangyan23888

只看该作者 6楼 发表于: 2013-03-10
回 4楼(jdwx) 的帖子
上面写错了是这样的
connect(this,SIGNAL(ChangeValue()),this,SLOT(gengxintext()));

emit成功的话就会执行gengxintext函数,结果没有
离线pxiao_xiao

只看该作者 5楼 发表于: 2013-03-09
报了什么错?
你的信号和槽函数是同类型的吗?
离线jdwx

只看该作者 4楼 发表于: 2013-03-09
回 3楼(wangyan23888) 的帖子
怎么知道的没有emit成功?
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线wangyan23888

只看该作者 3楼 发表于: 2013-03-09
能不能问一个问题,还是和上面的差不多的。
其中一个cpp文件:
1.cpp中
    ui->setupUi(this);
    connect(this,SIGNAL(ChangeValue()),this,SLOT(gengxintext()));


void Widget::panduan_fanhui()
{
       qDebug()<<"wangyan=============="<<diaodu.panduanzhi;
       emit ChangeValueEdit();
}
void Widget::gengxintext()
{
}
然后在另一个cpp中:
2.cpp中的某一个地方如下调用了一下panduan_fanhui(),调用它是为了触发emit ChangeValueEdit();信号
...
panduan_fanhui();
....


这样的结果是
qDebug()<<"wangyan=============="<<diaodu.panduanzhi
可以输出信息,之后就异常中断了,没有发出想要的emit ChangeValueEdit();信号

不知是什么原因呢?谢谢




离线wangyan23888

只看该作者 2楼 发表于: 2013-03-09
回 1楼(pxiao_xiao) 的帖子
谢谢,一般的可以实现了
离线pxiao_xiao

只看该作者 1楼 发表于: 2013-03-09
if(0 !=  fanhuizhi)
   emit  yourSignal();

在你才类声明里加一句:
signals:
    void yourSignal();
然后
connect(this, SIGNAL(yourSignal()), this, SLOT(UpdateEditText()));
快速回复
限100 字节
 
上一个 下一个