• 4184阅读
  • 1回复

无法由QT产生的QPushButton来呼叫自订的slot...why? [复制链接]

上一主题 下一主题
离线cnmember
 
只看楼主 倒序阅读 楼主  发表于: 2007-08-24
— 本帖被 XChinux 执行加亮操作(2008-07-18) —
請問在QT中若由QT GUI自動拉出一個QPushButton,它會產生代碼在ui_xxx.h中,
而若藉由QT GUI拉出預存的signal/slot,代碼一樣存在ui_xxx.h中,而該.h中存在一個class
但若此時想用這一個系統拉出來的QButton來執行一個「自訂」的slot,而這個slot是存在另一個class中,那該怎麼去藉由別的class中的QPushButton來執行本身class中的slot func?
簡略代碼如下:
在class a中有這個constructor
  1. RSProg::RSProg(Qwidget *parent)
  2.       :QWidget(parent)
  3. {
  4. ui.setupUI(this);
  5. Portinit();
  6. connect(pushButton,SIGNAL(clicked()),this,SLOT(Portopen()));
  7. }

在class b中
  1. class b{
  2. public:
  3. QPushButton *pushButton=new QPushButton("run",this);
  4. }


而另外是由QT GUI產生出來的ui_xxx.h內含class b,而在class a中使用的pushButton就是
declare在ui_xxx.h的class b中,那若以class a這種方式,compile會過,但會有runtime error`
若在class a的constructor中重訂一個QPushButton,便可正常執行;
但有沒有方法可以不要在class a 的constructor中訂一個新的,而由QT GUI產生出來的QPushButton的「point object」直接使用呢?

請大家給點指教`謝謝~
[ 此贴被XChinux在2008-07-18 09:55重新编辑 ]
离线turkeysy

只看该作者 1楼 发表于: 2007-08-24
把ui_xxx.h删掉,把其中的代码移植到a类中,再在类a中自定义SLOT,就可以直接connect了。
快速回复
限100 字节
 
上一个 下一个