- 博客(37)
- 收藏
- 关注
原创 Qt + VS编译oracle驱动库
Qt + VS编译oracle驱动库流程如下所示:1、打开需要编译的库的版本,打开对应的qmake,如下我选择了VS2015、2017 64位2、修改数据库源码下的qsqldriverbase.pri的文件如下所示:3、通过WIN+R,打开cmd终端,执行:qmake -tp vc C:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\oci\oci.pro执行结束后会在qmake.exe目录下生成项目文件,运行qsqloci.vcx
2022-05-06 18:10:34
928
1
原创 win 10 如何安装oracle数据库
安装oracle数据库之前,需要安装.Net3.51、安装oracle数据库的过程可以参考如下链接:https://jingyan.baidu.com/article/0eb457e55bfd0043f0a9057c.html2、oracle数据库的建立以及建立监听过程可以参考如下链接:https://www.cnblogs.com/ggll611928/p/15429311.html3、安装过程可能出现的问题:(1)安装进度卡死在85%。解决方式:强制停止,重新新建数据库,将原来85%的数据库
2022-05-06 17:15:59
1654
原创 c语言char和float相互转换
转换代码如下union CharFloat{ float numeric; unsigned char ascii[4];};float charTofloat(unsigned char *str) { CharFloat value; value.ascii[0] = str[0]; value.ascii[1] = str[1]; value.ascii[2] = str[2]; value.ascii[3] = str[3]; return value.numeric;}v
2021-10-29 09:34:57
7366
原创 linux makfile编译程序(万能模板)
phobj=为程序所依赖的资源文件编译的.o文件phobj = main.o phapp:$(phobj) gcc -o phapp $(phobj)%.o:%.c gcc -c $<clean: rm *.o rm phapp
2021-10-07 16:15:20
150
原创 linux makefile 编译库文件
#phobj = 此处为程序所依赖的.c或.cpp产生的对应.o文件phobj = main.ophapp:$(phobj) gcc -o phapp $(phobj) -l pthread%.o:%.c gcc -c $<clean: rm *.o rm phapp
2021-10-07 16:06:57
212
原创 C语言如何取数据位的01状态和组合数据位的01
#define GET_BIT(VALUE, OFFSET) (((VALUE)>>(OFFSET)) & 1)#define SET_BIT(VALUE, OFFSET) (((VALUE) & 1)<<(OFFSET))测试程序int main(){ int pt = 0x05; unsigned char t[32]; unsigned int v = 0; for (size_t i = 0; i < 32; i++) { t[i
2021-08-04 15:50:31
360
原创 Qt和MFC程序如何显示控制台窗口,显示printf信息
// 在qt 中打开控制台窗口,首先include Window.h #include <Windows.h>// 在main函数中添加代码 AllocConsole(); freopen("CONOUT$", "w+t", stdout); printf("hello world\n");// 在MFC 中打开控制台// 引用头文件io.h 和 fcntl.h#include <io.h>#include <fcntl.h>
2021-07-08 17:42:09
870
原创 OSG嵌入Qt窗口中+实时渲染数据输出
实现方式1、首先设置一个Qt下的一个窗口基类;2、窗口基类继承自一个重写的QGLWidget类和一个osgViewer::Viewer类3、重新QGLWidget类,实现OSG在windows窗口的使能。4、更新窗口继承类,重写构造函数和virtual void initializeGL();virtual void paintGL();函数。窗口基类#ifndef QTOSGVRWIDGET_H#define QTOSGVRWIDGET_H#include <QTimer>
2021-01-06 18:30:24
1551
3
原创 C++调用tinyXML读写XML文件
tinyXML测试代码入口main.cpp#include <iostream>#include <stdio.h>#include "TinyXML/tinystr.h"#include "TinyXML/tinyxml.h"void ReadXML(){ TiXmlDocument xmldoc("testxml.xml"); // 显示打印 TiXmlPrinter xmlPrinter; if(xmldoc.LoadFile() == false)
2020-12-02 15:19:36
720
原创 Qt+OpenGL绘制三维坐标系(动态曲线显示)
*Qt使用OpenGL绘制三维曲线时,需要加入OPenGL模块。此处的绘制的核心代码同样可以移植到MFC上显示。如下代码可以再进行优化。#ifndef QTDRAW3DCTRL_H#define QTDRAW3DCTRL_H#include <QtOpenGL/qgl.h>#include <QWidget>#include <QGridLayout>#include <QtGui/QtGui>#include <QtOpenGL/Qt
2020-11-07 15:47:22
18513
15
原创 This application failed to start because it could not find or load the Qt platform plugin
解决 Qt5 报错 This application failed to start because it could not find or load the Qt platform pluginQT为了简化生成发布版本,特别提供了工具 “windeplayqt.exe”,这个工具在 "…\Qt\msvc2017_64\bin"的目录下,通过该命令,可以解决上述错误。打开控制台窗口设置搜索路径以便系统可以搜索到 “windeployqt.exe”运行 “windeplayqt.exe D:\wor
2020-09-18 15:24:28
2160
原创 C++创建线程方式
C++ 创建线程方式如下:1,CreateThread;2,_beginthreadex;3,C++11 标准下的std::thread;4,MFC 下的AfxBeginThread;5,Qt 下的QThread创建线程方式1:CreateThreadstatic HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpsa, DWORD dwStackSize, LPTHREAD_START_ROUTINE pfnThreadPro
2020-09-14 14:13:30
6604
原创 C++进程间通信(windows)
C++ 进程间通信方式1,共享内存;2,管道;3,信号量进程1测试代码如下:#include <Windows.h>#include <iostream>/*********************1 共享内存**********************/HANDLE myHMutex;HANDLE myHEvent;BOOL SharedMemoryFun();/*********************2 命名管道**********************
2020-08-27 17:25:55
2287
原创 C语言字符串转十六进制以及各种类型转换
1 字符串转十六进制代码实现:void StrToHex(char *pbDest, char *pbSrc, int nLen){ char h1,h2; char s1,s2; int i; for (i=0; i<nLen/2; i++) { h1 = pbSrc[2*i]; h2 = pbSrc[2*i+1]; s1 = toupper(h1) - 0x30; //toupper 转换为大写字母 if (s1 > 9)
2020-08-15 14:15:38
4445
原创 OSG实例(模型遍历,模型控制,粒子系统,碰撞检测)
OSG建立场景时,一般包含以下步骤:1,建立模型根节点以及场景类;2,加入模型;3,加入模型场景;4,建立摄像操作,加入场景类;5,建立模型控制类,加入模型根节点;6,运行场景。如下的主函数包含所有的步骤:其中MyOSGCamera为摄像机控制类;CMyNodeCallback为模型控制类;CMyHelpHandler为帮助显示类MyOSGCamera控制摄像机的移动方向;CMyNodeCallback控制模型的前后左右移动;CMyHelpHandler按 H 键弹出帮助提示。#in
2020-08-13 14:20:48
1779
3
原创 常用qss样例
蓝色/*#COLOR#;MAIN_COLOR=#00bcd4;BTN_HOVER_COLOR=#24d4e0;BTN_PRESSED_COLOR=#0296ad;ITEM_HOVER_COLOR=#cafcf9;ITEM_SELECTED_COLOR=#a2fcf9*//**********窗口样式*************/QWidget#QSkinDemoClass,QWidget#QSkinEditDialog,QWidget#QMyMessageBox,QWidget#QAboutDia
2020-08-08 17:26:58
650
原创 Qt制作视频播放器
//播放控件 QMediaPlayer *m_pmediaPlayer; QVideoWidget *m_pvideoWidget;//初始化video控件void QtMainWidget::InitVideo(){ m_pmediaPlayer = new QMediaPlayer(this); m_pvideoWidget = new QVideoWidget; QPalette qplte; qplte.setColor(backgroundRole(), QColor(0, .
2020-08-08 17:04:43
779
1
原创 Qt绘制动态曲线
#ifndef QLINEWIDGET_H#define QLINEWIDGET_H#include <QWidget>#include <QtCharts/QChart>#include <QtCharts/QChartView>#include <QtCharts/QPieSeries>#include <QtCharts/QPieSlice>#include <QtCharts/QAbstractBarSeries>
2020-08-08 16:48:33
2404
2
原创 基于QT下TCP服务端客户端开发实例(核心代码同样适用于MFC)
**TCP服务端模型通信如下:**1,创建套接字2,绑定bind3,监听listen4,接受连接accept5,数据读写send recv //socket SOCKET m_serSock; //可实现多客户端,功能未加 std::vector<SOCKET> m_connectSockList; std::vector<HANDLE> m_handleList; SOCKET m_cliSock; SOCKET m_conSocket;bool Qt
2020-08-08 16:40:38
311
原创 C++实现微秒级计时器或程序运行时间查看
#pragma once#include <windows.h> class MyTimer { private: LONGLONG _freq; LARGE_INTEGER _begin; LARGE_INTEGER _end; public: long costTime; // 花费的时间(精确到微秒) public: MyTimer() { LARGE_INTEGER tmp; Quer
2020-07-03 15:31:19
1172
原创 Qt提升基础类emit信号
类A为界面基础类:#include <QtWidgets/QWidget>#include "ui_qttest.h"#include "qaddclass.h"class QtTest : public QWidget{ Q_OBJECTpublic: QtTest(QWidget *parent = 0); ~QtTest();`在这里插入代码片`public...
2020-04-07 18:57:02
391
原创 MFC 单文档工程添加Dialog,支持多Dialog切换
1、添加一个Dialog继承自CFormView;2、CMainFrame添加OnCreateClient函数,该函数下写入如下代码CDocument *pDoc = GetActiveDocumnet();CCreateContext cc;cc.m_pNewViewClass = RUNTIME_CLASS(/*1中的Dialog类*/);cc.m_pCurrentDoc = pDo...
2020-03-12 10:52:32
822
原创 C++操作TXT类
头文件#pragma once#include <iostream>#include <fstream>#include <string>#include <vector>#include <functional>#include <algorithm>class CReadTxtClass{public:...
2020-03-04 17:11:38
207
原创 c++读取配置文件ini类
头文件#pragma onceclass CReadIniClass{public: CReadIniClass(void); virtual ~CReadIniClass(void); BOOL GetFilePath(CString strPath); BOOL WriteIniFile(CString strAppName, CString strKeyName, CStr...
2020-03-04 16:58:12
279
原创 C++操作EXCEL类
头文件#pragma once#include <vector>class CReadExcelClass{public: CReadExcelClass(void); virtual ~CReadExcelClass(void); BOOL GetExcelPath(const CString strPath); BOOL ReadAndGetExcel(int...
2020-03-04 16:46:01
1044
原创 C++操作MYSQL数据库类
头文件#pragma once#include "include_db/mysql.h"#include "ReadExcelClass.h"#include <locale.h>#include <vector>#define LOADDATANUM 100 //一次加载条数#define MIN_TABINFO 1 //字段个数static CStri...
2020-03-04 16:38:08
875
原创 MFC 鼠标移动控件上显示提示信息和动态显示信息
MFC 鼠标移动控件显示提示信息和动态显示信息一、静态显示1、加入:CToolTipCtrl m_Mytip;2、然后在初始化对话框函数中加入:m_Mytip.Create(this); m_Mytip.AddTool( GetDlgItem(IDC_BUTTON), "你想要添加的提示信息" ); //IDC_BUTTON为你要添加提示信息的按钮的IDm_Mytip.AddT...
2019-08-19 11:48:17
1906
原创 如何安装MySQL 32位数据库
安装32位MYSQL数据库流程:1、在官网下载32位MYSQL数据库包zip下载http://dev.mysql.com/downloads/mysql/2、解压ZIP文件,到一个文件目录下,将解压目录的下data文件夹下的内容删除。3、在根目录新建my.ini文件,写入以下内容:[mysql]设置mysql客户端默认字符集default-character-set=utf8[m...
2019-07-03 20:01:12
8265
原创 QML分离业务逻辑代码
QML界面与Qt界面的区别QML 是Qt 新引入的制作界面的框架,相比原始的Qt界面,QML可以做出更加丰富且美化的界面,且QML可以做移动端界面的开发,相比原始的Qt有更加强大的界面制作能力,但是QML在实现业务逻辑时,就显得格外的吃力。如何让QML实现业务逻辑?QML实现业务逻辑的方式是:(1)创建一个C++的类,继承于QObject,包含宏Q_OBJECT#ifndef TESTC...
2019-05-05 16:58:54
1171
原创 C++线程间通信方式
***C++线程间通信方式一般可有两种****1、全局变量*定义一个全局变量,通过修改全局变量来达到线程间通信的目的;例如:以下程序基于Qt```#include <memory>#include <thread>#include <windows.h>#include <QDebug>int g_num = 123;cla...
2019-04-29 17:57:18
6339
原创 MFC利用Picture控件加载图片和绘制饼图
MFC利用Picture控件加载图片和绘制饼图1、MFC利用picture控件加载图片(显示图片)CImage image;image.Load(_T("./res/tt.png"));CRect re;GetDlgItem(IDC_FLY_PNG)->GetClientRect(&re);image.Draw(GetDlgItem(IDC_FLY_PNG)->G...
2019-04-26 18:26:11
1213
原创 Qt下操作TabWidget和TreeWidget以及treeView的操作,实现控件的上移,下移,删除,新建操作;以及树形控件的操作;
Qt下操作TabWidget和TreeWidget以及treeView的操作,实现控件的上移,下移,删除,新建操作;以及树形控件的操作;Qt下分为模型控件和Item控件:以下代码都有设计:infodialog.h#ifndef INFODIALOG_H#define INFODIALOG_H#include <QDialog>#include "ui_infodialog...
2019-04-23 11:31:12
3370
原创 qt如何做一个记住密码和自动登陆的界面
qt如何做一个记住密码和自动登陆的界面?首先在做自动登陆和记住密码的功能的时候,我们需要一个介质保存是否自动登陆和是否记住密码的功能,保存的方式一般可以有两种。一种方式是读配置文件;另一种方式是访问数据库信息(适合多人员操作)。而本文采用的则是前一种方式(读配置文件)。相关知识qt提供了一个类可以读取配置文件和设置配置文件属性的类QSettings;例如读取配置文件信息的方式value()...
2019-03-24 13:26:26
8124
2
原创 OSG下鼠标点击实现对模型的移动,旋转(拖拽器)
osg下如何用拖拽器实现鼠标对模型的控制?首先介绍一下拖拽器:(1):TabPlaneDragger平面拖拽器:其边、顶点上都有拖拽点,可以进行某个2D平面上的缩放;(2):TabPlaneTrackballDragger平面轨迹球拖拽器:除了平面拖拽器的功能外,还多了个轨迹球拖拽功能;(3):TrackballDragger轨迹球拖拽器:即旋转操纵器,没有缩放功能(4):Transla...
2019-03-23 15:35:21
4585
1
原创 OSG下鼠标点击实现对模型的移动,旋转(漫游器)
点击鼠标实现对模型的移动,旋转功能,需要用到漫游器。在实现的过程中的需要用到osgGA模块的知识,重写osgGA下的该函数virtual bool handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& us);可以实现对模型的操作。1、模型的移动:static Matrixd translate ...
2019-03-23 15:14:58
4556
1
原创 Win32下如何更改OSG显示窗口的大小,不使模型窗口充满整个屏幕。
OSG下如何自定义显示屏幕大小,设置显示框属性,不至于模型显示时充满屏幕。osg在做调试分析时,一般显示模型窗口会充满整个屏幕,不利于信息显示,和程序调试。以下两个函数会对osg窗口进行渲染和属性配置。viewer->realize();viewer->run();如何做才能使窗口不充满整个屏幕?只需要增加一个继承于osgGA::GUIEventHandler的类,然后重写h...
2019-03-23 10:45:26
1234
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人