• 11454阅读
  • 5回复

如何向QT designer设计的窗体添加自制信号|槽 [复制链接]

上一主题 下一主题
离线slaink
 
只看楼主 倒序阅读 楼主  发表于: 2010-05-25
问题应该是比较简单吧。
用qt creator 创建了一个GUI的application,其中用form设计了一个窗口
我自己写了一个readict.h readict.cpp的类,用来读取字典文件
其中有几个槽和信号
请问我如何将我自己写的槽和信号与窗体connect呢?
例如:
    QObject::connect(lineEdit,SIGNAL(textChanged(QString)),stardict_txt,SLOT(word_change(QString)));
    QObject::connect(stardict_txt,SIGNAL(word_find(QString)),textBrowser,SLOT(setText(QString)));
但是很明显他说这两个lineedit和textbrowser不是在这个作用域里定义的。(我写在主函数的cpp里)
请问能不能比较清晰的将这个东西实现呢?
请讲详细点谢谢,譬如说怎么include头文件,以及在那里可以做connect(按照qt creator生成的那个默认的GUI application,是有一个ui_mainwindow.h,貌似可以写那个里面,但是还是不太会)。
谢谢了!
离线0354030w

只看该作者 1楼 发表于: 2010-05-25
要关联到具体的对象吧!
离线benbenmajia

只看该作者 2楼 发表于: 2010-05-26
第一,如果你的form不是很复杂的话,我一向比较喜欢自己动手写出界面,这样你不会有这样的问题
第二,如果你用designer生成的,请你去看资料,呃,多看几遍
安然.....
离线抠涕
只看该作者 3楼 发表于: 2010-05-26
多看 qtdemo 可以解决很多问题。

Qt Designer -> Calculator Form
离线rockyluo

只看该作者 4楼 发表于: 2010-05-26
一般实现的话,自己手工编写在代码里connect好了
似乎Qt Creator里的那个信号/槽编辑器只能针对Qt库里已定义好的信号和槽,
对自己写的信号和槽似乎是无法在那个编辑器里进行连接,除非你的这个信号或槽继承自Qt库

另外使用4.6.2来,感觉Qt在信号和槽这块的处理还是蛮强大的
在定义好自己的槽后,只要槽的名字按一定规律编写,不用connect,Qt就可自动将你的槽与相应的信号进行连接
比如一个QPushButton按钮pb,他本来就有clicked信号,
当我们自己定义一个槽,名字为on_pb_clicked(),此时不需写connect连接语句,但运行程序时只要点击pb,
该槽函数就会自动触发的
其它很多定义为格式“on_控件名_信号名”的槽函数,不用写connect语句,Qt均可自动将其连接到对应的信号。
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
离线slaink
只看该作者 5楼 发表于: 2010-05-26
回 4楼(rockyluo) 的帖子
谢谢
快速回复
限100 字节
 
上一个 下一个