• 7186阅读
  • 6回复

[提问]VS环境下,已经安装了Integration,在编写GUI程序时,怎么实现自定义槽? [复制链接]

上一主题 下一主题
离线cjmdaixi
 

只看楼主 倒序阅读 楼主  发表于: 2008-05-13
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2011-01-07) —
如题,我发现,直接在ui生成的文件中手工加,等到再次编译时,都没有了,这也难怪,因为这些文件都是由ui在编译时自动生成的。可是,该怎样添加自定义槽啊?
离线gery_sunjian
只看该作者 1楼 发表于: 2008-05-13
自己写一个函数 就可以了..

在声明的时候 :
public slots:
        void func();

用connect() 函数连接 信号-槽..  就ok
离线cjmdaixi

只看该作者 2楼 发表于: 2008-05-13
我在界面上(用VS的Integration)拖了一个按钮myButton,然后,这样写,可是hello这个槽没有被调用,为什么啊?
qt::qt(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
    ui.setupUi(this);
    connect(ui.myButton, SIGNAL(click()), this, SLOT(hello()));
}
离线zy765

只看该作者 3楼 发表于: 2008-05-13
不需要这样,在moc生成的cpp文件中有一个switch,里面有槽调用,自己添加会调用两次。
离线cjmdaixi

只看该作者 4楼 发表于: 2008-05-13
确实在那个位置发现了你说的槽,也就是hello(),可是具体怎么和我的按钮click()信号连接起来呢?请说一下,谢谢了!我真的比较菜
离线cjmdaixi

只看该作者 5楼 发表于: 2008-05-13
帮帮我吧,起步很艰难……
离线gery_sunjian
只看该作者 6楼 发表于: 2008-05-14
int i = connect(ui.myButton, SIGNAL(clicked()), this, SLOT(hello()));

clicked ()  不是 click()

i 如果等于 0 说明 没有成功连接, 1 为成功.
快速回复
限100 字节
 
上一个 下一个