<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[bareheadedman的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/bareheadedman</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bareheadedman]]></copyright><item><title><![CDATA[QT写文件多出四字节问题]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/110918757</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/110918757</guid><author>bareheadedman</author><pubDate>Wed, 09 Dec 2020 11:12:44 +0800</pubDate><description><![CDATA[问题：QDataStream 使用"&lt;&lt;"方法写入数据，有多余的字符，如16进制表示为“0000 001a”
解决：QDataStream 使用writeRawData()方法写入数据能够避免多余字节的产生
QFile file(“file.txt”);
file.open(QIODevice::WriteOnly);
QDataStream out(&amp;file);   // we will serialize the data into the file
//原代码
//使用操作符输入]]></description><category></category></item><item><title><![CDATA[在对DCM格式图像进行显示时，根据窗宽窗位进行归一化]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/109288408</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/109288408</guid><author>bareheadedman</author><pubDate>Mon, 26 Oct 2020 13:55:35 +0800</pubDate><description><![CDATA[window_center=1200 #窗位
window_width=400  #窗宽
win_min = (2window_center - window_width)/2.0 + 0.5
win_max = (2window_center + window_width)/2.0 + 0.5
dFactor = 255.0/(win_max - win_min)
nNumPixels=rawData.shape[0]
for i in range(nNumPixels):
pixel_val = raw]]></description><category></category></item><item><title><![CDATA[C++11的tuple类型]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/107628543</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/107628543</guid><author>bareheadedman</author><pubDate>Tue, 28 Jul 2020 09:32:34 +0800</pubDate><description><![CDATA[tuple
tuple是一种数据类型，叫做元组，它类似于我们平时使用的struct结构体，可以将不同的数据类型放入到tuple中。
和tuple相关的函数
1.make_tuple：它是用来创建一个tuple的
auto tup1 = std::make_tuple("Hello Wrold!",'a',3.14,0);

上面的代码就是创建了一个tuple&lt;const char*, char, double, int&gt;类型的元组。从这里我们就可以看出可以在tuple中存储不同的数据类型。
2.]]></description><category></category></item><item><title><![CDATA[ITK踩坑之旅（1）ITK的编译与安装（VS2015）]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/104904093</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/104904093</guid><author>bareheadedman</author><pubDate>Mon, 16 Mar 2020 18:47:49 +0800</pubDate><description><![CDATA[**
一：准备工作
**
1：首先要下载ITK
http://www.itk.org/ITK/resources/software.html
我使用的版本是4.13.2
各种版本操作都基本差不多
2：下载CMAKE
http://www.cmake.org/cmake/resources/software.html
我是用的版本是3.11.3
二：接下来开始进行编译
1：首先在C盘或者D盘新建一个...]]></description><category></category></item><item><title><![CDATA[QT中LineEdit输入限制]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/104789757</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/104789757</guid><author>bareheadedman</author><pubDate>Wed, 11 Mar 2020 09:34:42 +0800</pubDate><description><![CDATA[qt的三种验证类：
1。输入int类型
QValidator *validator=new QIntValidator（100,999，this）；
QLineEdit *edit=new QLineEdit（this）；
edit-&gt;setValidator(validator);
也可以表示成
QLineEdit *edit=new QLineEdit（this）；
edit-&gt;s...]]></description><category></category></item><item><title><![CDATA[关于Qt中中文乱码的问题]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/104697821</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/104697821</guid><author>bareheadedman</author><pubDate>Fri, 06 Mar 2020 16:07:09 +0800</pubDate><description><![CDATA[有时候我们会再使用Qt的时候遇到这样的问题
就是中文显示出来是乱码

解决方法：
1：加上头文件#include
然后写  QTextCodec *codec = QTextCodec::codecForName(“GBK”);
在需要中文显示中文的时候加上
codec-&gt;toUnicode(“测试”);
这时显示的就是正常的中文了。

2：这个方法可能对某些人会有用
就是在要显示中文时加上...]]></description><category></category></item><item><title><![CDATA[Qt学习 文件对话框与目录对话框]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/104550510</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/104550510</guid><author>bareheadedman</author><pubDate>Fri, 28 Feb 2020 09:58:02 +0800</pubDate><description><![CDATA[文件对话框
顾名思义，是用来选择文件的
 QFileDialog::getopenFileName(this,"选择一个文件", 默认路径);


通过
QFileDialog::getopenFileNames(this,"选择一个文件", 默认路径);

我们还可以选择多个文件，但是这时候我们如果选择的是目录的话是没有办法进行选择的。
所以我们就要用到目录对话框
QFileDialog::ge...]]></description><category></category></item><item><title><![CDATA[Qt学习（6）文件操作]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/104406127</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/104406127</guid><author>bareheadedman</author><pubDate>Thu, 20 Feb 2020 10:30:43 +0800</pubDate><description><![CDATA[在Qt中使用QFile对文件进行读写操作
QFile file（path 文件路径）；
读文件
1：file.open(文件打开方式);  例如QIODevice::readOnly只读方式打开
2：全部读取  file.readAll()   按行读  file.readLine()  file.atend()判断是否读到文件尾
3:将读入的数据放入QByteArray array中
可以用ar...]]></description><category></category></item><item><title><![CDATA[Qt学习（5）Qt中的事件]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/104405663</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/104405663</guid><author>bareheadedman</author><pubDate>Thu, 20 Feb 2020 10:14:33 +0800</pubDate><description><![CDATA[1	Qt中的事件
1.1	鼠标事件
1.2	鼠标进入事件  enterEvent
1.3	鼠标离开事件  leaveEvent
1.4	鼠标按下   mousePressEvent ( QMouseEvent  *ev)
1.5	鼠标释放   mouseReleaseEvent
1.6	鼠标移动   mouseMoveEvent
1.7	ev-&gt;x() x坐标  ev-&gt;y() y坐标...]]></description><category></category></item><item><title><![CDATA[Qt学习（4）控件]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/104405098</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/104405098</guid><author>bareheadedman</author><pubDate>Thu, 20 Feb 2020 09:54:17 +0800</pubDate><description><![CDATA[1：按钮组
1.1：QPushButton 常用按钮
1.2：QToolButton 工具按钮  可以用来显示图片  显示文字
修改风格 toolButtonStyle  例如凸起风格 autoRaise
1.3：radioButton 单选按钮  默认选项设置 ui-&gt;rBtnMan-&gt;setChecked(true);
1.4:	checkbox多选按钮，监听状态，2 选中  1 ...]]></description><category></category></item><item><title><![CDATA[Qt学习  对ini文件进行读写操作]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/104394656</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/104394656</guid><author>bareheadedman</author><pubDate>Wed, 19 Feb 2020 16:10:18 +0800</pubDate><description><![CDATA[首先介绍一下界面

界面中第一行我创建了选择文件的按钮 后面跟着一个显示文件路径的LineEdit  还有读写文件的按钮
下面分别是int文件中的一些数据格式  左边是label  右边是LineEdit
ui界面创建好以后
下面是widget.h的代码
#ifndef WIDGET_H
#define WIDGET_H

#include &lt;QWidget&gt;

namespace U...]]></description><category></category></item><item><title><![CDATA[Qt学习（3）对话框]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/104369336</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/104369336</guid><author>bareheadedman</author><pubDate>Tue, 18 Feb 2020 09:25:35 +0800</pubDate><description><![CDATA[Qt中的对话框分为：模态对话框和非模态对话框。
模态对话框：不可以对其他窗口进行操作，是阻塞的。
非模态对话框：可以对其他窗口进行操作。
模态对话框的创建：
QDialog dlg(this);
dlg.exec();
非模态对话框的创建：
防止对话框一闪而过  创建到堆区
QDialog *dlg = new QDialog(this);
dlg-&gt;show();
dlg-&gt;setA...]]></description><category></category></item><item><title><![CDATA[Qt学习（2）菜单栏和工具栏等]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/104361888</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/104361888</guid><author>bareheadedman</author><pubDate>Mon, 17 Feb 2020 18:47:34 +0800</pubDate><description><![CDATA[我们知道，在创建Qt项目时有三个类供我们选择，一个是Widget就是空窗口，一个是QMainWindow就是带菜单栏的窗口，另一个是Dialog也就是对话框。
在我们选择QMainWindow后我们经常会创建菜单栏及工具栏等等
1：菜单栏
菜单栏最多只能有一个
1.1：创建菜单栏 QMenuBar *bar = MenuBar();
这时菜单栏虽然被创建出来，但是却并不会显示在主窗口中，我们要调用...]]></description><category></category></item><item><title><![CDATA[Qt学习（1）信号和槽]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/104361344</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/104361344</guid><author>bareheadedman</author><pubDate>Mon, 17 Feb 2020 17:35:51 +0800</pubDate><description><![CDATA[信号和槽
以我自己的理解来说，信号和槽就是一个响应机制，我们提前将信号和槽连接起来，当信号被触发时，槽函数就被调用。举个例子来说，就相当于你听到自己肚子叫了，你就知道你饿了，所以就去吃饭，而肚子叫就可以看作一个信号，去吃饭就可以看成与其相连的槽函数。
1：信号和槽的连接接函数：connect
2：函数参数
2.1：参数1 信号的发送者
2.2：参数2 发送的信号（函数地址）
2.3：参数3 信号的...]]></description><category></category></item><item><title><![CDATA[关于TeamViewer的下载安装登录过程（记录）]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/104267953</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/104267953</guid><author>bareheadedman</author><pubDate>Tue, 11 Feb 2020 19:14:02 +0800</pubDate><description><![CDATA[1：关于TeamViewer的下载
在网上搜索TeamViewer，找到自己想要的版本进行下载即可。
2：关于TeamViewer的登录
主要记录登录所遇到的问题
（1）提前注册TeamViewer账号，因为我的账号是公司已经帮我注册好的，所以省略这一步；
（2）打开TeamViewer，输入账号密码进行登录，这时会弹出一个对话框，让你进邮件进行验证，验证时有一个选项，是选则是否信任此设备或IP。...]]></description><category></category></item><item><title><![CDATA[Linux学习笔记（socket网络编程）]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/102802698</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/102802698</guid><author>bareheadedman</author><pubDate>Tue, 29 Oct 2019 17:09:46 +0800</pubDate><description><![CDATA[socket概念
在TCP/IP协议中，“IP地址+TCP或者UDP端口号”卫衣表示网络通讯中的一个进程，“IP地址+端口号”就称为socket，socket也是一个描述符。
在TCP协议中，建立连接的两个进程各自有一个socket来标识，那么这两个socket组成。
下面说一声socket编程的步骤：
服务器端：
1.创建socket：
int socket(int domain,int typ...]]></description><category></category></item><item><title><![CDATA[Linux学习笔记（线程池）]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/102703295</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/102703295</guid><author>bareheadedman</author><pubDate>Wed, 23 Oct 2019 16:06:52 +0800</pubDate><description><![CDATA[线程池的概念：
线程池就是首先创建一些线程，它们的集合称为线程池。使用线程池可以很好地提高性能，线程池在系统启动时即创建大量空闲的线程，程序将一个任务传给线程池，线程池就会启动一条线程来执行这个任务，执行结束以后，该线程并不会死亡，而是再次返回线程池中成为空闲状态，等待执行下一个任务。
线程池的工作机制：
在线程池的编程模式下，任务是提交给整个线程池，而不是直接提交给某个线程，线程池在拿到任务后，...]]></description><category></category></item><item><title><![CDATA[Linux学习笔记（数据库）]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/102588509</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/102588509</guid><author>bareheadedman</author><pubDate>Wed, 16 Oct 2019 17:48:15 +0800</pubDate><description><![CDATA[MySql–三种注释写法
需要特别注意-- 这种注释后面要加一个空格
#DELETE FROM SeatInformation
/*DELETE FROM SeatInformation */
– DELETE FROM SeatInformation
数据库中的约束
主键约束primary key
外键约束foreign key
默认值约束default
check约束
unique约束
数据库...]]></description><category></category></item><item><title><![CDATA[Linux学习笔记（管道）]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/102570606</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/102570606</guid><author>bareheadedman</author><pubDate>Tue, 15 Oct 2019 17:53:32 +0800</pubDate><description><![CDATA[管道的概念
管道是一种两个进程见进行单向通信的机制，因为管道只能对数据进行单向传递，所以管道又称为半双工管道。管道是Linux由Unix继承而来的IPC形式之一。
管道分为无名管道与命名管道。
管道的特点：
1:只能在有亲缘关系的进程之间进行通信（也就是在父子进程之间通信）
2:单向通信一个读端,一个写端,如果要双向通信就要建立两个管道
3:接收数据流,与数据格式无关
4:一般而言,进程退出,管道...]]></description><category></category></item><item><title><![CDATA[Linux学习笔记（进程间通信）]]></title><link>https://blog.youkuaiyun.com/bareheadedman/article/details/102569636</link><guid>https://blog.youkuaiyun.com/bareheadedman/article/details/102569636</guid><author>bareheadedman</author><pubDate>Tue, 15 Oct 2019 16:49:06 +0800</pubDate><description><![CDATA[进程间通信的概念
（IPC）进程间通信
Linux下的多个进程间的通信机制叫做IPC，它是多个进程之间进行相互沟通的一种方法。通过进程间通信可以实现不同进程之间传播和交换信息。
进程间通信的目的
1.数据传输
2.资源共享
3.一个进程需要向另一个或一组进程发送消息，通知它或它们发生了某种事件
4.进程控制
进程间通信的方式
在Linux下有多个进程间通信的方法：半双工管道、FIFO（命名管道）、...]]></description><category></category></item></channel></rss>