QT
文章平均质量分 54
zhaoyx_Study
虽然工作几年,编程仍然菜鸟一枚
展开
-
new delete 访问程序崩掉
Qt开发工作中,在一个功能函数中new 一个临时变量接收值,在函数执行完之后接着delete,当在其他的位置再次访问刚才保存的变量值得时候,程序就会出现段错误!这是在面试中经常考到的篡改动态内存的考题,new 开辟动态内存,在delete之后任然访问,这才真正理解篡改动态内存,这是为程序崩掉留下的隐患,所以要选择好开辟与释放动态内存的位置,在此记录!原创 2014-12-02 10:36:31 · 418 阅读 · 0 评论 -
Qt 写文件时文件创建 内容为空的问题
车牌识别设备将识别的车牌及图片信息二进制文件返回,调用接口时通过分配存储空间获取车牌图片信息保存文件,代码如下char *bin_img_buf = (char *)malloc(1024 * 1024);char *jpeg_img_buf = (char *)malloc(1024 * 1024);//空间分配完成必须初始化,否则使用时会产生不一致的异常情况,比如此处无法进行写入图片信息mem...原创 2018-03-22 16:03:33 · 3025 阅读 · 0 评论 -
Qt4 字符转码时崩溃 异常
车牌识别设备返回车牌结果为GB2312,Qt要能解析显示,这时就要进行转码,qstring 存放unicode,实现代码简单如下char plate_num[256] = {0};QString m_strVehPlate;m_strVehPlate = QTextCodec::codecForName("GB18030")->toUnicode(plate_num);在调用转码接口时会崩溃...原创 2018-03-22 15:44:24 · 756 阅读 · 0 评论 -
qt Qlist<T*>
在工作中class TWtVehicle : public QListTAxis> QListTWtVehicle*> m_newVehList; 用到了Qlist,当获取完 TWtVehicle *tmp变量后追加到 m_newVehList,m_newVehList.append(tmp);在输出是m_newVehList保存的所有变量的值都是一样的,调试半天没找到原创 2014-12-02 15:45:58 · 2044 阅读 · 0 评论 -
__declspec,__cdecl,__stdcall区别和作用
__cdecl和__stdcall都是函数调用规范(还有一个__fastcall),规定了参数出入栈的顺序和方法,如果只用VC编程的话可以不用关心,但是要在C++和Pascal等其他语言通信的时候就要注意了,只有用相同的方法才能够调用成功.另外,像printf这样接受可变个数参数的函数只有用cdecl才能够实现. __declspec主要是用于说明DLL的引出函数的,在某些情况下用__转载 2014-11-27 18:14:43 · 909 阅读 · 0 评论 -
Qt调用DLL动态库接口函数程序崩掉
工作中使用Qt开发,调用外部动态库.dll,在调用接口函数时总是运行之后崩掉,提示段错误!单步调试总有变量被意外改动,弄了两天在同事的帮助下解决!方法如下:在定义接口函数指针时添加 _stdcall,它的缺陷是只能运行在windows平台,不能跨平台typedef _stdcall int (*Func_WtDev_AxisCount)(int VehicleID);问原创 2014-11-27 17:57:04 · 5158 阅读 · 2 评论 -
QT widget 失去焦点不响应按键
帮忙找程序问题,发现程序启动左右控制键以及退格键不好用,但是用鼠标点击界面任何地方之后又好使了!发现是焦点的问题,将焦点设置在启动的窗体就可以了,最简单的方法!1、setFocus使Widge获得焦点widget还有焦点事件,解决焦点切换之后不响应按键:1、void QWidget::focusOutEvent ( QFocusEvent * event ) [virtual prot原创 2014-12-26 09:40:51 · 6643 阅读 · 0 评论 -
qt 启动新线程执行定时器
编写QT程序时,时常会需要使用定时器QTimer来执行一些定时任务,但当定时任务执行的时间过长,则会影响整个界面的响应,因此会想到使用另一个工作线程来执行定时器,一般情况下可以选择从QThread派生一个线程类,然后重载run并执行任务逻辑,那下面就介绍一个不用从QThread派生并使用QTimer的例子。主窗口类头文件加入:QThread* _voiceThread;QTimer*转载 2015-01-20 22:49:12 · 4904 阅读 · 0 评论 -
Qt Qsplitter 问题处理
当使用QSplitter时,如果是多个QSPlitter嵌套使用(如下图)就很容易出现错误。通常是“内存不能为read” (如下图)代码如下:(错误的用法)#include #include #include #include #include #include #include #include int ma转载 2015-02-12 13:33:05 · 1865 阅读 · 0 评论 -
Qt中漂亮的几款QSS
/* === Shared === */QStackedWidget, QLabel, QPushButton, QRadioButton, QCheckBox, QGroupBox, QStatusBar, QToolButton, QComboBox, QDialog { background-color: #222222; color: #BBBBBB;转载 2015-03-30 14:27:51 · 3385 阅读 · 0 评论 -
Qt经典—线程、事件与Qobject
介绍You’re doing it wrong. — Bradley T. Hughes线程是qt channel里最流行的讨论话题之一。许多人加入了讨论并询问如何解决他们在运行跨线程编程时所遇到的问题。快速检阅一下他们的代码,在发现的问题当中,十之八九遇到得最大问题是他们在某个地方使用了线程,而随后又坠入了并行编程的陷阱。Qt中创建、运行线程的“易用”性、缺乏相关编程尤其是异转载 2015-03-30 14:32:37 · 700 阅读 · 0 评论 -
QT限制QTextBrowser/QTextEdit最大行数
QTextEdit->document()->rowCount();用document()这个函数获取QTextDocument对象后,还可以获取其他更多的功能,比如限制edit的行数,setMaximumBlockCount(int)等。ui.text->document ()->setMaximumBlockCount (1000);转载 2015-03-31 10:08:17 · 8348 阅读 · 0 评论 -
QT pro文件介绍
在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下:1. 注释从“#”开始,到这一行结束。2. 指定源文件SOURCES = *.cpp对于多源文件,可用空格分开,如:SOURCES = 1.cpp 2.cpp3.cpp或者每一个文件可以被列在一个分开的行里面,通过反斜线另起一行,就像转载 2014-12-04 22:18:51 · 353 阅读 · 0 评论 -
QT pro工程文件中添加pri文件以及其他pro工程文件
工作中看到工程项目中包含原创 2014-11-24 14:53:07 · 3361 阅读 · 0 评论 -
qt 读取xml文件
因为需要读取配置文件,我的配置文件采用xml;因此编写了使用qt读取xml文件内容的代码,xml文件如下:?xml version="1.0" encoding="UTF-8" ?>configuration> server> item key="serverip" value="222.88.1.146" /> item key=原创 2014-09-05 23:21:26 · 576 阅读 · 0 评论 -
QT串口接收十六进制数据在文本框中显示
//读取串口void MySerial::readMyCom(){ QByteArray temp; if(myCom->bytesAvailable() >= 8) { temp = myCom->readAll(); //读串口缓冲区数据 } QDataStream out(&tem原创 2014-09-10 11:13:19 · 6966 阅读 · 1 评论 -
qt将16进制数据转换为字符串
inline quint8 Char2Hex(char c){ if ('0' && c'9') return c-'0'; if ('a' && c'f') return c-'a'+10; if ('A' && c'F') return c-'A'+10; return -1;}bool Hex2Raw(quint8 *pData, co原创 2014-09-10 17:28:57 · 8111 阅读 · 0 评论 -
QT QDomDocument 读写XML文件
因为需要读取配置文件,我的配置文件采用xml;因此编写了使用qt读取xml文件内容的代码,xml文件如下:?xml version="1.0" encoding="UTF-8" ?>configuration> server> item key="serverip" value="222.88.1.146" /> item key=原创 2014-09-11 14:16:11 · 900 阅读 · 0 评论 -
qt 解决空间中文显示问题
QTextCodec *codec = QTextCodec::codecForName("utf-8"); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(codec); QTextCodec::setCodecForTr(codec);原创 2014-09-11 10:41:21 · 393 阅读 · 0 评论 -
QT 写XML文件
前面几章我们讨论了读取 XML 文档的三种方法。虽然各有千秋,但是 Qt 推荐的是使用 QXmlStreamReader。与此同时,许多应用程序不仅需要读取 XML,还需要写入 XML。为此,Qt 同样提供了三种方法:使用 QXmlStreamWriter;构造一个 DOM 树,然后掉其 save() 函数;使用 QString 手动生成 XML。可以看出,无论我们使用哪种读取方式转载 2014-09-11 15:20:59 · 1054 阅读 · 0 评论 -
QT读写XML
test.xml Xml代码 xml version="1.0" encoding="UTF-8"?> Start animinal="cat"> book>book1book> Start> simpleWriter.cpp C++代码 #include #include #inc转载 2014-09-11 15:24:16 · 426 阅读 · 0 评论 -
QT 动态库加载失败
手动封装DLL,然后通过Qlibrary 加载,老是提示原创 2014-11-12 14:39:50 · 7460 阅读 · 0 评论 -
Qt text Browser 控件使用
在界面需要显示收到内容可以使用text Browser空间,在工作中使用方便,我在使用中直接使用ui->textBrowser->insertPlainText(),插入文本可是在输出的内容的时候输出的位置不确定有时按顺序依次向下输出,有时在中间输出!解决方法如下:1、使用其他方法写内容textBrowser->textCursor().insertTex...原创 2014-11-13 15:13:35 · 51075 阅读 · 5 评论 -
Qt Qprocess 启动新程序切换工作目录
QT启动新程序 Qproccess原创 2014-11-19 11:12:13 · 4513 阅读 · 0 评论 -
QT中PRO文件写法的详细介绍
在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下:1. 注释从“#”开始,到这一行结束。2.模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = appA> app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被转载 2014-11-24 14:49:59 · 399 阅读 · 0 评论 -
QT中文显示问题
QT中文显示这块网上找到很多文章,也是按照网上的做的,但是有很多不成功,这里把自己成功的总结下。原创 2014-09-05 09:48:44 · 371 阅读 · 0 评论