• 4291阅读
  • 10回复

[提问]按两个不同的按钮,实现相同的事件,怎么编比较方便? [复制链接]

上一主题 下一主题
离线200300969
 

只看楼主 倒序阅读 楼主  发表于: 2013-01-07

void MainWindow::on_openMyComBtn_clicked()
void MainWindow::on_action_O_triggered()


要实现同一个事件,应该怎么写……还是要分别写事件?


求教!!非常感谢
离线roywillow

只看该作者 1楼 发表于: 2013-01-07
写一个槽,让按钮和action的信号都连接它
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线200300969

只看该作者 2楼 发表于: 2013-01-07
回 1楼(roywillow) 的帖子
connect(openMyComBtn, SIGNAL(clicked()), this, SLOT(start()));
    connect(action_O,SIGNAL(triggered()),this, SLOT(start()));
void MainWindow::start()

openMyComBtn和action_O是按钮的名字,报错说是

54: error: variable or field 'openMyComBtn' declared void
离线200300969

只看该作者 3楼 发表于: 2013-01-07
回 1楼(roywillow) 的帖子
还是我压根就是写错了 ……
离线roywillow

只看该作者 4楼 发表于: 2013-01-07
回 3楼(200300969) 的帖子
没遇到过这个错误
谷歌一下
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线200300969

只看该作者 5楼 发表于: 2013-01-07
回 4楼(roywillow) 的帖子
是不是我写的不对啊?怎么把这两个连起来……
我改成
QEvent *start = new start(this);
    connect(start(), SIGNAL(on_openMyComBtn_clicked()), this);
    connect(start(),SIGNAL(on_action_O_triggered()),this);
这样算连起来了不……
离线200300969

只看该作者 6楼 发表于: 2013-01-07
回 4楼(roywillow) 的帖子
但还是报错……
离线200300969

只看该作者 7楼 发表于: 2013-01-08
回 4楼(roywillow) 的帖子
刚看了下,大概我是用UI直接画的按钮,默认已经有信号连接了?我应该怎么做呢 不想自己用命令新建一个按钮……
离线jdwx

只看该作者 8楼 发表于: 2013-01-08
回 7楼(200300969) 的帖子
两个按钮,button1和button2
一个槽void onClicked()
connect(button1,SIGNAL(clicked()),this,SLOT(onClicked()));
connect(button2,SIGNAL(clicked()),this,SLOT(onClicked()));
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线200300969

只看该作者 9楼 发表于: 2013-01-08
哦哦,搞定了 谢谢楼上诸位的解答
离线roywillow

只看该作者 10楼 发表于: 2013-01-08
回 5楼(200300969) 的帖子
你怎么用起来QEvent了……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个