【C++/Qt】Qt中的parent形参】的更多相关文章

在 派生类的构造函数初始化列表中 调用 父类的带有参数的构造函数,是为了初始化从父类继承来的成员变量.因为这些变量无法直接初始化,只能采用这种方式初始化. 而在qt中,MainWindow中的某成员变量(指向父组件的指针,假定为p)无法直接初始化,只能在初始化列表中调用QMainWindow(parent),把形参parent的值间接的传给p,使p完成初始化.…
今天写了一个小程序,验证了带参的构造函数中参数parent的作用. 在MainWindow中声明一个QDialog类型的指针,在MainWindow中对它进行初始化.我采用了两种初始化方式,一种是带参的构造函数,一种是不带参的构造函数.如下: /*mainwindow.h*/ ... QDialog *dialog; ... /*mainwindow.cpp*/ //第一种方式,用不带参的构造进行初始化 dialog = new QDialog; //第二种方式,用带参的构造函数初始化 dial…
程序写的多了,你会发现几乎所有的Qt类的构造函数都会有一个parent参数.这个参数通常是QObject* 或者是 QWidget* 类型的(定义新的类是通常首先初始化为0,在类的实现函数中赋值).很多情况下它都会有一个初始值0,因此,即便你不去给它复制也没有丝毫的问题.于是,稍微偷懒一下,就会不自觉的忽略了这个参数.那么,这个参数 到底是干什么用的呢? 有了此参数,子类才会继承父类在构造函数中初始化了的数据,否则,父类的初始化数据的构造函数不执行,无法继承数据,如果吧数据定为私有的,又不便于类…
前提:我用mingw编译的qwt. 将qwt插件集成到qt designer非常easy.仅仅要把qwt编译的qwt_designer_plugin.dll复制到C:\Qt\Qt5.3.1\5.3\mingw482_32\plugins\designer以下就可以.安装路径因人而异.但假设想要在qt creator中的designer集成qwt插件的话就没那么easy了,拷贝了qwt_designer_plugin.dll到C:\Qt\Qt5.3.1\Tools\QtCreator\bin\pl…
话接上篇.通过前几篇博客,我们实现在Lua脚本中执行Qt类中函数的方法,以及在Lua脚本中连接Qt对象的信号与槽. 但是,我们也能发现,如果希望在Lua脚本中执行Qt类的函数,就必须绑定一个真正实现功能的函数.如QWidget::show(),需要写一个在栈中取出widget指针,widget调用show()函数的方式.如果希望在Lua中调用大量函数,就需要编写大量的C++实现函数.有没有什么省时省力的好方法呢? 上一篇中我们实现了在Lua脚本中连接信号与槽.我们只是传过去了两个QObject的…
要想在Qt Designer中使用自定义控件,必须要使Qt Designer能够知道我们的自定义控件的存在.有两种方法可以把新自定义控件的信息通知给Qt Designer:“升级(promotion)”法和插件法.升级法最为简便快捷.顾名思义,升级法就是把Qt自有的控件进行升级改造一番.选一个Qt自有的控件,如果它和我们新加的自定义控件有着相似的 API,那么只要在Qt Designer的对话框里面完成有关新控件的信息就一切大吉,新控件就可以用在Qt Designer创建的form中.但是在编辑…
链接:http://blog.csdn.net/yangyunfeizj/article/details/7082001    作者:GoatYangYang 公司让负责qt界面开发,但是接触qt又不久,现将在项目中遇到的一些问题汇总下,一为了避免自己忘记,二希望能帮助到他人. 1.在程序关闭窗口时,显示提示窗口: qt中有很多信号和相应的槽函数,上述问题需要拦截关闭窗口信息QWidget::close(),QWidget::closeEvent( QCloseEvent * event )重写…
要想在Qt Designer中使用自定义控件,必须要使Qt Designer能够知道我们的自定义控件的存在.有两种方法可以把新自定义控件的信息通知给Qt Designer:“升级(promotion)”法和插件法. 升级法最为简便快捷.顾名思义,升级法就是把Qt自有的控件进行升级改造一番.选一个Qt自有的控件,如果它和我们新加的自定义控件有着相似的API,那么只要在Qt Designer的对话框里面完成有关新控件的信息就一切大吉,新控件就可以用在Qt Designer创建的form中.但是在编辑…
qml文章 qt qml中PropertyAnimation的几种使用方法 动画应用场景有以下几种: 首先如果一个Rectangle.动画是要改变它的x和y值 1,Rectangle一旦被创建,就要移动到一个特定的位置 2,动画仅仅有在某一个特定的外部行为触发时候才会被触发,比如,鼠标单击某一个控件时候,产生动画.使目标移动到指定的位置 3,仅仅有在某一个特定的信号后才触发 4,做为一个独立的动画,尽管没有绑定rectangle的运动,可是能够在脚本中载入,開始和停止 5.仅仅有在状态改变时候才…
在学习QT的过程中发现有一个特别炫酷的行星例子“planets”,有两种实现版本: 一种是基于Qt 3D QML(planets-qml),另一种则是基于Quick和强大的Three.js(planets). 在主函数调用过程中,这两个例子均使用QQuickView类来加载qml文件. QQuickView嵌入到QT MDI中 将QMainWindow的中间窗口设置为多文档窗口区域:  C++ Code  1234   QMdiArea* pCentralWidget = new QMdiAre…
Qt Creator中的3D绘图及动画教程(参照NeHe) http://blog.csdn.net/cly116/article/details/47184729 刚刚学习了Qt Creator,发现Qt提供了QtOpenGL模块,对OpenGL做了不错的封装,这使得我们可以很轻松地在Qt程序中使用OpenGL进行绘图渲染.虽然里面还是由不少专业的解释照搬原文的,但还是加入了大量自己的分析.而且Qt中写OpenGL框架上比VC简单太多了,有不少东西都封装优化好了,代码上还是由有很多区别的.当然…
在QML中,在Qt Quick中,要想妥善地处理各种事件,肯定离不开信号与槽,本博的主要内容就是整理Qt 中的信号与槽的内容. 1. 链接QML类型的已知信号 QML中已有类型定义的信号分为两类:一类由用户输入产生,如按键,鼠标,触摸屏,传感器等:另一类是由对象状态或属性变化产生的. (1)信号处理器 信号处理器等价于Qt中的槽,一般是on<Signal>这种形式,比如onClicked:{} 信号处理器放在拥有信号的元素内部,当元素信号发射时处理器被调用,还有一种情况,要处理的信号不是当前元…
Qt QML 入门 — 使用C++定义QML类型 发表于 2013 年 3 月 11 日   注册C++类 注册可实例化的类型 注册不实例化的QML类型 附带属性 注册C++类 注册可实例化的类型 如果一个C++类继承自QObject,如果需要在QML中使用创建对象,则需要注册为可实例化的QML类型. 使用qmlRegisterType()注册可实例化的QML类型,具体查看qmlRegisterType()的文档说明. //Message.cpp class Message : public Q…
1.Qml调用C++类 Qt QML模块提供了一组API,用来将C++类扩展QML中.您可以编写扩展来添加自己的QML类型,扩展现有的Qt类型,或调用无法从普通QML代码访问的C/C++函数本章将学习如何使用C++类编写QML扩展,其中包括属性.QML function和属性绑定等为了方便大家理解,本章示例的函数实现能写在头文件,就写在头文件. 2.创建QML将C++类扩展QML时,一般用来实现QML目前无法实现的功能,比如访问系统信息,文件信息等.本章demo是显示一个简单的饼图,创建一个C+…
一个简单的qt界面 相应代码如下: setWindowTitle(tr("Sotware"));//设置窗体标题 ui->tabWidget->removeTab(); ui->tabWidget->removeTab(); m_pProcessTextEdit = new QTextEdit; m_pProcessTextEdit->setReadOnly(true); QIcon icon1(":/new/prefix1/1.ico"…
  双缓冲绘图在Qt4中,所有的窗口部件默认都使用双缓冲进行绘图.使用双缓冲,可以减轻绘制的闪烁感.在有些情况下,用户要关闭双缓冲,自己管理绘图.下面的语句设置了窗口部件的Qt::WA_PaintOnScreen属性 ,就关闭了窗口部件的双缓冲.mywidget->setAttribute(Qt::WA_PaintOnScreen); 由于Qt4不再提供异或笔,组合模式QPainter::CompostionMode_Xor()并不是异或笔,Qt4只提供了QRubberBand实现矩形和直线的绘…
本文简要描述一下在Qt应用中使用VLD来检测内存泄露.本次测试环境:QtCreator2.3 + Qt4.7.4-vs2008 + VS2008 Express. 1.下载并安装:VLD-2.2: http://vld.codeplex.com/ 链接:http://vld.codeplex.com/releases/70398/download/261406 假定安装到c:/dev/vld-2.2目录下. 注:vld最初发表在codeproject.com,这个版本太老了.检测不准,不能使用.…
首先值得注意的是:在写程序的时候,项目保存路径不要涉及到中文,否则容易出错! 一.Qt在VS2013中的控制台输出方式: 注意:这里是而不是Qt Application. 然后直接点击finish即可. 最后值得注意的是:在VS2013中写QT程序,不管是GUI还是控制台,都需要进行简单的参数设置. 1.首先:因为在VS2013的默认平台为32位系统,所以,如果机器是64位系统,则每次都要进行环境设置,步骤: 右键Solution ‘namexxx’-->proterties-->config…
Visual Studio下Qt编程中对中文的处理 本文为原创文章,原文地址http://www.cnblogs.com/c4isr/p/qt_develop_in_vs.html Visual Studio(以下简称VS)默认情况下使用GBK(GB2312)作为字符的编码方式,在Windows中默认兼容良好. 但是市面上多数国外软件及Linux软件都只兼容UTF-8 without signature(无DOM类型),在其他软件中打开这些文本会出现乱码. 具体的编码原理可以参考这篇文章http…
Qt Creator中,include路径包含过程(或如何找到对应的头文件) 利用Qt Creator开发程序时,需要包含利用#include来添加头文件. 大家都知道,#include <>用于包含标准库头文件,路径在安装软件的include文件夹下:#include ""用于包含用户自定义的,路径是在用户当前目录下(或自建工程目录下). 对于后者,路径比较直观,容易理解.如#include "lyc/daniel.h",路径在当前目录的lyc文件夹下…
由于在windows下的QT编程中,如果涉及到使用微软的API,那么不可避免使用_TCHAR这些类型,因此在网上查了一下,其中一个老外的论坛有人给出了这个转换,因此在这里做一下笔记 : )#ifdef UNICODE #define QStringToTCHAR(x)     (wchar_t*) x.utf16() #define PQStringToTCHAR(x)    (wchar_t*) x->utf16() #define TCHARToQString(x)     QString:…
QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT 库的基础之上.QT 支持下列平台:MS/WINDOWS-95.98.NT 和 2000:UNIX/X11-Linux.Sun Solaris.HP-UX.Digital Unix.IBM AIX.SGI IRIX:EMBEDDED- 支持 framebuffer 的 Linux 平台.伴随着 KD…
老蔡写了一个基于QT的窗体程序,而过去写的类的调试信息都是用cout显示的,苦于窗体程序无法显示cout信息很多信息都看不到,于是就想到让控制台和窗体同时显示.显示控制台方法如下 1.项目(或者叫“工程”,或者project) 2.连接器(linker) 3.系统(system) 4.将第一项选成控制台(Console).不过务必要记得选择控制台前是在什么选项上,等调试结束后选回去,不然程序编译出来,就带着那个黑框框的控制台了. 打完收工.希望调试C++看不到控制台的天使们看到这篇文章后不再继续…
在qt creator中编辑Makefile时的Tab键总是不能识别,需要这样设置…
本文主要描述如何在Qt Creator中创建资源文件,并的打入导入图标文件. 查看图标资源文件时,可以在项目的工程文件上鼠标单击右键-Open With-资源编辑器,效果如下图所示: 在项目的工程文件上鼠标单击右键-Open With-普通文本编辑器,效果如下图所示: 如果需要导入已经存在的资源文件和图标文件,如saribbonresouce.qrc是已经存在的资源文件,icon是已经存在的图标文件,见下图所示, 如果需要导入已经存在的资源文件和图标文件,则只需要在项目的项目文件*.pro中最后…
Qt Creator中的子目录项目类似于Visual Studio中的Solution(解决方案),可以用来管理多个子项目.但是在Qt Creator IDE中由不能像Visual Studio中那样通过右键菜单选中待启动的项目. 那么如何选择某个子项目为启动项目呢?方法如下: 在Qt Creator IDE中只能在左下角的运行中选择,截图如下:…
一.PythonQt库 在Qt(C++)中与Python混合编程,可以使用PythonQt库. 网站首页:http://pythonqt.sourceforge.net 下载页面:https://sourceforge.net/projects/pythonqt/files/ 只提供了源码下载,需自行编译. 版本要求: 其网站building页面上的要求:Qt 4.8.1以上,Python2.6以上 实际测试中得出的版本要求:Qt5.4以上,可以编译得到动态链接库(.so文件):Python2.…
最近在学习多线程编程,本人平时习惯使用Qt Creator写程序,只是作为C++编辑器,很少使用Qt library中的类. Multi Threading作为C++11标准已经纳入C++标准库了,可以在http://www.cplusplus.com/reference/multithreading/看到. 写完一个多线程程序后,尝试使用Qt Creator编译,结果出现一大堆错误,其中有这样一条: 试着上网搜一下,找到了解决方法.在工程文件(pro)中加入下面这段话就OK了: QMAKE_C…
初学Qt的人可还不会接触到这个问题,但是一旦你开始编写某个较大项目的时候,这个问题就不可避免需要解决. 对于大神们来讲可能这是个很简单的问题,但是对于新手来说,想要搞清楚需要下很大功夫. 怎么创建pri文件: 第一步:用Qt新建你需要的项目(假如所在文件夹名为deploy). 第二步:打开项目文件夹,在这里面新建一个文件夹(名为MenuWindow). 第三步:在MenuWindow文件夹下新建一个pri文件(名为hello).(怎么新建?可以新建一个文本文件,然后更改后缀名). 第四步:打开Q…
最近在研究qt界面开发,发现使用qss对界面进行美化后效果不错,要比mfc效率高很多,美化效果也很出色.但是在使用qss文件对界面控件进行美化的过程中遇到了个很奇葩的问题,困惑了我好久,今晚又遇到了,感觉整个人都不好了,问题症状如下: (1)我在Qt Creator中新建了一个工程,添加qss文件及内容后运行,加载qss文件并运行程序,qss美化效果死活出不来(经检查,qss内容及加载过程都正确): (2)在Qt Creator中打开一个现有项目,该项目中含有qss文件,能正确加载,在别的电脑上…