槽函数主要负责界面交互,你的逻辑如果过于复杂的话就不要写在槽函数里,该新建就新建。
一般类或者函数定义写在头文件h里,它们的实现写在源文件cpp里。你只需要在界面类引用头文件,就可以调用里面相应的类或函数。
1、打开Qt Creator;
2、点File ---- New File or Project (Ctrl + N );
3、d出的对话框选择 Empty Qt4 Project;
4、d出的对话框输入 工程的名字 ,然后 选择目录,然后选择 NEXT;
5、再点击Finish;
6、你现在可以看到新生成的工程了,假设工程名叫Hello,你可以看到一个Hello的文件夹,如果有加号你点开就可以看到一个Hellopro。
7、选择那个Hello的文件夹,然后右键,选择 Add New;
8、d出的对话框选择 C++ Source File,然后OK;
9、d出的对话框,输入文件名,比如hellocpp;
10、然后点击Next,然后确认 添加到工程 旁边的小方框 已经打勾,再按 Finish;
11、这样就可以看到一个Source文件夹,文件夹下有一个hellpcpp,你现在可以输入程序了;
12、输入完毕程序以后,保存。点击左侧的一个锤子图标(鼠标放上去显示Build All);
13、如果程序没有错误,就会显示编译成功,如果错误或者软件设置不对,就会提示错误;
14、如果没有错误,那么就可以按左侧那个绿色的三角(鼠标放上去显示Run),就会运行程序了;
15、注意,新出来的界面在左上角。
以上是IDE的使用方法,以下是使用命令行的方法:
以下方法针对Windows下的Qt Creator。
1、建立一个文件夹,比如E:\Hello;然后在Hello里面新建一个记事本,重命名为hellpcpp。这样就可以用记事本编辑程序了。编辑好了以后,保存。
2、在 开始(屏幕左下角那个),然后找到Qt Creator的目录,找到Qt Command Prompt(我相信你能找到)
3、打开Qt Command Prompt
用cd命令,切换到Hello目录下:
具体命令为:cd E:\Hello
4、先生成工程Hellopro:
具体命令为: qmake -project
5、然后编译工程生成Makefile:
qmake Hellopro
6、最后编译生成可执行程序:
mingw32-make
这时候就可以在debug文件夹下找到新生成的程序了。
7、双击生成的helloexe,就可以运行了。
注意此时不要关闭Qt Command Prompt。不然会提示缺少DLL。
如果要发布程序,你就得复制相应的DLL到程序所在的文件夹。
这是在linux下从源码安装,第一个是解压源码包,第二个是定位到源码所在目录,第三个是配置,第四个是make,第五个是安装。如果你的是linux *** 作系统,可以用这种方式安装,当然qt也有二进制安装包,我记得有deb格式的。如果你的是windows就不要用这个安装了,直接下载安装包双击安装就行了。
我先来抛砖引玉吧
1)内嵌VC开发的话,可以使用visualstudio的各种C++功能,文本编辑/自动补全/调试等等和普通的C++开发差不多,gui界面会调用designer插件,这个vc/eclipse/kdevelop/qtcreator都一样。相对来说比较方便。但是因为visualstudio不支持并行编译(至少vsnet2008还不支持),因此编译较慢。如果是写了makefile,或者利用qt生成vc格式的makefile,那么qtgitorisorg上有一个项目叫jom,和nmake基本兼容,但是支持并行编译,这个只能在命令行里面用
2)eclipse,给我的感觉怎么说呢,就不像是给C/C程序员使用的IDE,它其实也就是用qt插件创建gui,在编译过程中插入moc/uic/r处理。编译速度要看是在windows下还是linux下,如果是wndows,eclipse使用的是mingw工具链,因此编译速度很慢。linux下用的是g工具链,因此速度较快
3)kdevelop分为3x版本的和4x版本的,3x版本的比较成熟,但是有些功能不太容易使用,比如一个很简单的添加已存在的文件到项目中的 *** 作,用kdevelop就是没有很直观的方式。不是很好用
4)qtcreator,我觉得比kdevelop和eclipse好用,比visualstudio2008当然还是差一些。比如它的文件的编码格式(gb2312/iso88159-1/utf-8/big5)之类的设置,有时候似乎没有生效,我用kate或者gedit打开之后发现qtcreator编码格式转换没有起作用。
这些工具在gui编码和qt特有的功能(信号/槽、属性、moc/uic/r)方面基本相同,都是调用qtdesigner插件。在编译速度方面,eclipse(win32)=QTCREATOR(WIN32MINGW)qtcreator>eclipse=kdevelop
int count = listsize(); //这里的list应该是一个类的成员对象,或者是函数的局部变量对象,直接使用该对象的size方法的返回值
int count = this->listsize(); //这里的list只能是类的成员对象的指针,不再有其他可能性
具体的区别见注释信息,最大的区别在于一个是对象,一个是指针
使用方式上两者都可以,看个人和团队习惯
#include <QtGui/QLineEdit>
class QLineEdit;
重复了,删除其中一行即可
还有可能是 你的 pro文件 缺少 QT += gui
Qt程序异常终止的原因:\x0d\\x0d\一、在使用指针之前,要进行指针是否为null的判断,如果为NULL却直接使用该指针,就会异常终止。如在QTableView:\x0d\QStandardItemModelmodel=newQStandardItemModel;\x0d\model->item(0,1)->text()\x0d\单元格没编辑过,直接用model->item(0,1)->text()的话,程序会异常终止。\x0d\\x0d\二、析构函数中加入释放内存的delete代码后,关闭Qt应用程序,会出现程序异常终止,去掉析构函数里delete的代码就没有问题了。我是在工程中额外添加一个继承自QTableView的Qt设计师界面类,并在ui_widgeth中,即widgetui界面的源码中,将QTableView改为我这个添加的类的类名。在新建的类的cpp文件中,注释掉\x0d\,ui(newUi::CTblView);\x0d\ui->setupUi(this);\x0d\\x0d\两行,但没有注释掉\x0d\deleteui;\x0d\\x0d\原因和第一点一样,ui定义了没有使用,就直接delete,故而导致程序异常终止。也注释掉这行就正常了。\x0d\\x0d\三、指针对象没有实例化就进行引用\x0d\如:\x0d\Dialogd;d=newDialog;d->show();如果忘了第二行的实例化,也会导致Qt程序异常终止。
QtLinguist的使用方式
lupdate可以把h,cpp,ui中需要翻译的字符串抽出来形成ts文件,然后用linguist翻译,用lerealse生成qm。
*** 作步骤如下:
1修改pro,在其中添加=XXXts或是=XXXts
如果要生成多个可以用:
=lang_ents
lang_zhts
lang_lats
2执行lupdatepro,生成XXXts
3使用linguist打开XXXts,进行翻译,翻译结束后,保存成为qm格式的。File-
或者是翻译结束后,使用命令,lreleaseXXXts,生成qm文件。
4在程序中加入。
QTranslatortranslator;
translatorload("browser");
app(&translator);
其中load的是XXXqm中的不包含后缀名的文件名(即XXX)。
注:我之前编写时在Maincpp中加入的东东:
a(argc,argv);
QTranslatortranslator;
translatorload("admain_zh");
asetFont(QFont("wenquanyi"));//设置字体库
a(&translator);
以上就是关于C++ Qt 编程求解惑 具体问题:与Qt框架无关的复杂计算函数,声明和实现分别写在哪个文件里全部的内容,包括:C++ Qt 编程求解惑 具体问题:与Qt框架无关的复杂计算函数,声明和实现分别写在哪个文件里、Qt入门hello程序、QT开发环境的搭建中的程序中这几句什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)