Qt 编程点滴9
来源:互联网 发布:域名为什么认证 编辑:程序博客网 时间:2024/04/29 23:45
QString怎么转换成char
- QString str ="123456";
- str.toAscii().data(); //this return a char* or const char*
- str.toAscii() return a QByteArray
- QString Str; //Str = "asdfasdfasdf";
- Str->toString().c_str();
调用 Q_DECLARE_METATYPE 报以下错
- ..\..\..\..\Qt\src\corelib\kernel\qmetatype.h||In function \\\'void* qMetaTypeConstructHelper(const T*) [with T = ContactsInfoTabItemData]\\\':|
- ..\..\..\..\Qt\src\corelib\kernel\qmetatype.h|152|instantiated from \\\'int qRegisterMetaType(const char*, T*) [with T = ContactsInfoTabItemData]\\\'|
- src\contactsinfotabitemdata.h|62|instantiated from here|
- ..\..\..\..\Qt\src\corelib\kernel\qmetatype.h|126|error: no matching function for call to \\\'ContactsInfoTabItemData::ContactsInfoTabItemData()\\\'|
如果报以上相类似的错误,请对构造函数中的每个参数赋初值,下面的写法是错误的
- class ContactsInfoTabItemData
- {
- public:
- ContactsInfoTabItemData(QString name,QString caption);
- };
- Q_DECLARE_METATYPE(ContactsInfoTabItemData);
正确的写法应为:
- class ContactsInfoTabItemData
- {
- public:
- ContactsInfoTabItemData(QString name=QString(),QString caption=QString());
- };
- Q_DECLARE_METATYPE(ContactsInfoTabItemData);
如果程序莫名奇妙的退出,也不报DLL找不到的错误,请仔细检查Main函数体有没直接Return的语句,以造成不提示,直接退出的错误;
在Qt中计算文本的宽度与高度 ( http://www.cuteqt.com/blog/?p=1029 )
- error: incomplete type %u2018nsIDOMComment%u2019 used in nested name specifier
产生此错误的原因:
- g++ gives this message if you\\\'ve forward-declared a type, like this
- class MyClass;
- and then you try and access one of its members, like maybe:
- MyClass::doSomething()
- g++ is complaining that it hasn\\\'t seen the body of class MyClass yet, so it has no way to know what MyClass::doSomething is.
- (In C++ jargon, an "incomplete type" is a type that\\\'s been forward-declared but not yet defined.)
互斥用法:
- QMutex mutex;
- void GlobalVar::setUserInfo(const GlobalVar::UserInfo &userInfo)
- {
- QMutexLocker locker(&mutex);
- this->userinfo = userInfo;
- }
自定义事件方法:
- a.h:
- #include "event.h"
- typedef void ( EventDelegater::*SetWidgetParent )(QWidget*,QString );
- class test
- {
- public:
- Event OnSetWidgetParent;
- private:
- inline void invokeSetWidgetParent(QWidget *parentWidget,QString widgetName);
- };
- a.cpp:
- inline void test::invokeSetWidgetParent(QWidget *parentWidget,QString widgetName)
- {
- if ( !OnSetWidgetParent.m_EventList.empty() )
- {
- // 循环事件列表
- Event< SetWidgetParent >::EventIterator iter;
- for ( iter = OnSetWidgetParent.m_EventList.begin();
- iter != OnSetWidgetParent.m_EventList.end();
- ++iter )
- {
- // 调用事件
- InvokeEvent( parentWidget, widgetName );
- }
- }
- }
触发事件:
- invokeSetWidgetParent(NULL,QString());
绑定事件方法:
- test->OnSetWidgetParent.Bind(this, &MainWindow::setWidgetParent);
自定义宏的用法:
- *.pro
- DEBUGSAVETOFILE = 1
- isEmpty(DEBUGSAVETOFILE){
- win32:debug {
- CONFIG += console
- }
- }
- else{
- DEFINES += __DEBUGSAVETOFILE__
- }
- main.cpp:
- #ifdef __DEBUGSAVETOFILE__
- #pragma message( "__DEBUGSAVETOFILE__ is defined.")
- qInstallMsgHandler( messageOutput );
- #else
- #pragma message("win32:debug is defined.")
- #endif
- Qt 编程点滴9
- QT 编程点滴
- QT 编程点滴
- Qt编程点滴
- QT 编程点滴
- Qt 编程点滴1
- Qt 编程点滴 2
- Qt 编程点滴3
- Qt 编程点滴4
- Qt 编程点滴 5
- Qt 编程点滴6
- Qt 编程点滴7
- Qt 编程点滴8
- Qt 编程点滴 10
- Qt 编程点滴 初学者必看(1)
- QT点滴
- Qt点滴
- QT点滴
- Qt 编程点滴8
- Delphi Thread 线程(1)
- using BOOST_FOREACH with std::map
- 关于REQUIRES 'ORG.ECLIPSE.GEF 0.0.0' BUT IT COULD NOT BE FOUND的解决方法
- CAS单点登录(SSO)服务器配置
- Qt 编程点滴9
- MyEclipse配置hibernate,连接oracle,报ORA-00604错误的解决
- 仓库管理中的盘点_条码应用
- Java Web 系统单点登录的实现
- Qt 编程点滴 10
- android中的matrix的简单应用--translate(平移),rotate(旋转),scale(缩放)和skew(倾斜)
- 数据结构之并查集
- android中wifi原理及流程分析
- Datamax指令DPL打印加回车的二维条码