Qt 编程点滴 初学者必看 (2)
创始人
2024-08-01 02:00:47
0

Qt 编程继续为大家讲解,还是接着文章 Qt 编程点滴 初学者必看 (1) ,继续介绍,说编程那些细节。由于本话题是一节一节为大家介绍的,所以更多内容请看末尾编辑推荐。

删ITEM方法:

把把ITEM的数据挂到指针上,先删ITEM,然后再删除指针

如果发生 no such file or directory not find(报Qt核心文件错)

有可能是project --properties--projects settings中的"This is a custom MakeFile"没有勾选;

检查.pro文件是   INCLUDEPATH += DEPENDPATH+= 有没加入文件所在的目录

检查.pro文件是否引入两个版本不同的相同文件名的文件;

枚举类型做为信号的参数,则需对枚举类型进行注册

在include中

  1. //定义Enum  
  2. typedef enum{  
  3.     ProgressType,  
  4.     StartType,  
  5.     SuccessType,  
  6.     StopType  
  7. }  
  8. SyncMsgType;    //定义结构  
  9. typedef struct  //实际使用中可以多增加些结构成员  
  10. {  
  11.     SyncMsgType msgtype;  
  12. }SyncMsg;  
  13. Q_DECLARE_METATYPE(SyncMsg) 

在应用程序.CPP中

  1. //连接之前再注册  
  2.     qRegisterMetaType("SyncMsg");  
  3.     connect(gpssyncthread, SIGNAL(syncMsgNotify(SyncMsg)),  
  4.             this, SLOT(syncMsgEvent(SyncMsg)));    
  5. QList listItemDatas;  
  6.  for (QList::iterator it=listItemDatas.begin(); it!=listItemDatas.end() ; ++it)  
  7.     {  
  8.         (*it)->colName;  
  9.     }  
  10. error: multiple types in one declaration 

自定义的类 {}后面没有";"

还有一种可能是pro文件中引用了两次单元文件;

expected unqualified-id before "int"前一句的";"误写为","

在Bulid工程时,qmake *.pro死循环,原因:pro文件里同一文件包含两次;

char *const p ; p所指向的值不能变;

char cont *p; P所指向的地址不能变;

error: `nameLineEdt\\\' was not declared in this scope 函数域没有写; (函数域::函数名())ifdef/define重覆

  1. int main(int argc, char *argv[])  
  2. {  
  3.     Q_INIT_RESOURCE(qtdam);  
  4.       
  5.     QApplication app(argc, argv);  
  6.     QSplashScreen *splash = new QSplashScreen;  
  7.     QString path=app.applicationDirPath();  
  8.     IDIOMA *lang = new IDIOMA();  
  9.     lang->setfile_idioma(path+"/languages.lng");  
  10.     if (lang->idioma_seleccionado=="Español")  
  11.         splash->setPixmap(QPixmap(":/images/splash_espagnol.png"));  
  12.     else  
  13.         splash->setPixmap(QPixmap(":/images/splash.png"));  
  14.     splash->show();  
  15.     Qt::Alignment topRight = Qt::AlignRight | Qt::AlignTop;  
  16.     splash->showMessage(lang->leer_idioma("1"),topRight, Qt::white);  
  17.     MainWindow mainWin;  
  18.     mainWin.show();  
  19.     splash->finish(&mainWin);  
  20.     delete splash;  
  21.     return app.exec();  

函数如果有返回值必须写,否则有造成一些不确定的错误,如:

  1. QString a()  
  2. {  
  3. }  
  4.  
  5. QString str;  
  6. str = "abc";  
  7. str.append(a());  
  8. QMessageBox::warning(this, tr("呼叫"),str,QMessageBox::Ok); 

上面的情况,对话框可以出来,但点击对话框中的"确定"后,程序会死在那;

进行信号连接时,要确保连接参数中的对象已经创建过,否则会报保护错;

图片加载不了,有可能是Qt库中的插件库没有拷贝;

加载路径指令:

  1. QCoreApplication::addLibraryPath(QObject::tr("%1%2plugins").arg(QCoreApplication::applicationDirPath()).arg("/")); 

qDebug() << "插件加载的路径是(QCoreApplication::libraryPaths):" << QCoreApplication::libraryPaths()<        

有三个插件加载路径 1,应用程序路径;2,QTDIR环境路径,3,加入的路径;     

  1. TRACE_LEVEL=5 TRACE_SUBSYS=DB /d/study/umpcapp/umpcapp-dev-1.0.0/debug/gpsapp.exe   
  2.  
  3.  void DragWidget::mousePressEvent(QMouseEvent *event)  
  4.  {  
  5.      QLabel *child = static_cast(childAt(event->pos()));  
  6.      if (!child)  
  7.          return;  
  8.  
  9.      QPixmap pixmap = *child->pixmap();  
  10.  
  11.      QByteArray itemData;  
  12.      QDataStream dataStream(&itemData, QIODevice::WriteOnly);  
  13.      dataStream << pixmap << QPoint(event->pos() - child->pos()); 

 
取得应用程序所在路径,注:结果后面未加"/"

  1. QCoreApplication::applicationDirPath() 

*.hpp文件,如果改动,Bulid后对改动后代码不起作用,必须ReBulid才可以;

小结:通过Qt 编程点滴介绍,也给自己提高了编程过程中需要注意的细节问题,由于本话题是一节一节为大家展现的,所以更多内容,请看编辑推荐。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...