• 5763阅读
  • 3回复

[提问]【完全新手】已有c++ project,如何利用qt creator可视化?具体问题内附 [复制链接]

上一主题 下一主题
离线treep
 
只看楼主 倒序阅读 楼主  发表于: 2011-12-12
现状:已有一个vc中编好的c++project(3个.h,3个.cpp,1个main.cpp)
目标:用qt搞出一个界面,点不同的按钮即调用对象的不同函数。界面我会画了,所以问题主要是后者。
问题背景:
各位高手肯定觉得这个问题很弱很没有技术含量……我们主要是在学习c++,可视化是c++作业的一小部分,所以我没有从头系统地学习QT,且决定直接用QT creater,所以请不要告诉我“去啃c++ gui programing with QT4”……至少告诉我看哪个章节吧
我的想法:
已经做了一个hello qt,可以有一个quitbutton点击后退出,用的方法是在MainWindow::on_quitButton_clicked函数里调用 qApp->quit();
所以是不是其它函数的调用也可以依此法调用?
创建对象并初始化什么的应该在main里写还是mainwindow?(原来c++project中写在main里的)
此外,一个重大迷惑是,原c++中用cin、cout处理的输入输出问题在qt中该怎样做?
离线roywillow

只看该作者 1楼 发表于: 2011-12-12
点击按钮调用不同的函数,完全可以用信号和槽来实现
信号就是按钮的click之类的信号
槽则是要在QObject的子类中声明为public slots,之后才能与信号连接
并非随便一个函数都能连接
因为QWidget也是继承自QObject,所以自然他可以拥有槽函数,并且你可以继承这些类然后写槽函数
cin和cout不是只有控制台程序才有的吗?既然你想用gui的话就用不到这些了吧
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线treep
只看该作者 2楼 发表于: 2011-12-12
谢谢roywillow!
关于信号和槽:
抱歉我不太理解,信号和槽的概念有点抽象。
直接在MainWindow的private slots:中写 void on_pushButton_clicked();与你说的public slots有何区别?(我画了个button后直接右键点“转到槽...”,qt creator就自动帮我生成上面的那个函数了)是否在这个clicked函数中写调用我的对象的某个函数即可?

现在我不确定是否把我写好的类已经加进qt的这个gui application里了,我在mainwindow里include“XX.h”(像c++中那样),但run之后显示“XX.h”not found

关于输入输出:
呃,是的,我知道不需要cincout了……那么应该怎样做?
离线roywillow

只看该作者 3楼 发表于: 2011-12-12
private slots的话这个slots对外是不可见的,如果你想写个槽只用来在这个类的内部与各种内外部信号连接的话,用private就好,这个跟成员函数是一样的意思

设计师里是不会生成槽的,只会生成一个槽的connect语句,最终这个槽还是要自己去声明、实现

include的话要注意一下头文件的位置吧……估计是没放对地方?

不用cin和cout的话,就用gui来获得输入和显示输出呗,正如你现在面对的这个浏览器一样……


至于那本书,信号和槽我记得有一章,那个是要看看的,然后就是子类化QMainWindow、QDialog、QWidget之类的内容,我感觉我是在那里面真正学会怎么用槽的
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个