<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ppss177的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ppss177</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ppss177]]></copyright><item><title><![CDATA[多线程相关]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/143662874</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/143662874</guid><author>ppss177</author><pubDate>Sun, 10 Nov 2024 17:38:33 +0800</pubDate><description><![CDATA[多线程...]]></description><category></category></item><item><title><![CDATA[设计模式——结构型]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/135004041</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/135004041</guid><author>ppss177</author><pubDate>Thu, 14 Dec 2023 20:46:35 +0800</pubDate><description><![CDATA[为待装饰对象中某一结构特征添加内容，而不是新建一个特征。要素：装饰器，装饰对象。]]></description><category></category></item><item><title><![CDATA[设计模式——行为型]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/132434202</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/132434202</guid><author>ppss177</author><pubDate>Tue, 22 Aug 2023 20:55:45 +0800</pubDate><description><![CDATA[应用：多个对象依赖于一个对象时，能有效保证解耦；特点：建立一种一对多的关系，一个对象发生变化其余对象都能知道并更新（JDK内置）；角色：Observable——抽象主题，被观察角色（JDK内置）ConcreteObservable——具体主题，具体被观察角色，存入具体观察者，当发生变化时通知各观察者Observer——抽象观察者（JDK内置，内置为接口）；ConcreteObservable——具体观察者；]]></description><category></category></item><item><title><![CDATA[一些编程/计算机中的基本知识]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/132363875</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/132363875</guid><author>ppss177</author><pubDate>Fri, 18 Aug 2023 16:45:08 +0800</pubDate><description><![CDATA[PackageManager，包管理器，用于管理应用程序的安装、卸载、查询和更多相关操作。pm list packages//设备上已安装的应用程序pm dump …//获取应用程序的详细信息，如包名、版本号、权限等：Activity Manager，活动管理器，用于管理设备上的活动和应用程序的状态。]]></description><category></category></item><item><title><![CDATA[设计模式——创建型]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/132306398</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/132306398</guid><author>ppss177</author><pubDate>Tue, 15 Aug 2023 20:52:20 +0800</pubDate><description><![CDATA[单例模式主要用于某个类有且只能用一个对象的场景，单例模式下不能外部实例化对象，由类内部自行私有化实例对象并提供一个可以获得该对象的方法。]]></description><category></category></item><item><title><![CDATA[Android 小控件]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/131577400</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/131577400</guid><author>ppss177</author><pubDate>Thu, 06 Jul 2023 20:49:21 +0800</pubDate><description><![CDATA[以滑动的方式显示view或fragment，ViewPager2通过Adapter显示Views或Fragments。]]></description><category></category></item><item><title><![CDATA[Kotlin 函数]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/131404933</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/131404933</guid><author>ppss177</author><pubDate>Mon, 26 Jun 2023 20:46:01 +0800</pubDate><description><![CDATA[this：run、 with、 apply，通过关键字this引用上下文对象，在它们的 lambda 表达式中可以像在普通的类函数中一样访问上下文对象，大多数场景下当访问接收者对象时可以省略this。it：let、also，将上下文对象作为lambda的参数，默认名称为it，当调用对象函数或属性时不能想this一样隐式访问对象。apply、 also返回上下文对象let、 run、 with返回lambda表达式结果。]]></description><category></category></item><item><title><![CDATA[Android Stduio里编译打包C语言文件]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/130834002</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/130834002</guid><author>ppss177</author><pubDate>Tue, 23 May 2023 20:18:09 +0800</pubDate><description><![CDATA[三、将c中的监听器回调结果传递处理定义一个listener和一个setListener函数ENV = env;//Listener中的方法和参数 callback(c_listener);//c中的监听器设置函数 } listener_t c_listener(int param) {]]></description><category></category></item><item><title><![CDATA[Koin入门使用]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/130372543</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/130372543</guid><author>ppss177</author><pubDate>Tue, 25 Apr 2023 20:55:25 +0800</pubDate><description><![CDATA[single创建的对象在整个容器的生命周期内存在，任意地方注入都是同一个实例。factory每次创建新的实例，不被保存、不被共享。1.创建Koin容器。2.创建Koin模块。]]></description><category></category></item><item><title><![CDATA[git简单使用]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/130194190</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/130194190</guid><author>ppss177</author><pubDate>Mon, 17 Apr 2023 14:08:16 +0800</pubDate><description><![CDATA[git reset 是把HEAD向后移动了一下，而git revert是HEAD继续前进，只是新的commit的内容和要revert的内容正好相反，能够抵消要被revert的内容。git reset --hard HEAD//撤销工作区中所有未提交的修改内容，将暂存区与工作区都回到上一次版本，并删除之前的所有信息提交。不局限于一个分支，可夸分支操作。将远程主机的某个分支的更新取回，并与本地指定的分支合并，完整格式可表示为：git pull  :]]></description><category></category></item><item><title><![CDATA[C中的一点小东西]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/130138277</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/130138277</guid><author>ppss177</author><pubDate>Thu, 13 Apr 2023 20:28:44 +0800</pubDate><description><![CDATA[extern只起申明作用，不定义，extern的变量或函数的定义在其他文件中。extern的函数或变量在头文件中被引用了，只会被编译一次。代码区：编译后的程序指令，CPU可直接执行的机器码。.h中extern的变量或函数定义可以不在对应的.c文件中，但该对应的.c文件中也可以使用。函数指针：void (*fun)(parm);空类型指针可以转为其他类型的指针，其他类型的指针也可转为空类型的指针。.h中声明的变量或函数定义需要在对应的.c文件中。]]></description><category></category></item><item><title><![CDATA[Android Service]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/129755260</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/129755260</guid><author>ppss177</author><pubDate>Fri, 24 Mar 2023 18:00:06 +0800</pubDate><description><![CDATA[android组件——服务，与进程通信博文与类型之处：https://editor.youkuaiyun.com/md/?]]></description><category></category></item><item><title><![CDATA[Android 基础功能例子]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/129711084</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/129711084</guid><author>ppss177</author><pubDate>Wed, 22 Mar 2023 20:21:35 +0800</pubDate><description><![CDATA[Android 小例子开发]]></description><category></category></item><item><title><![CDATA[Android多设备多module打包（fat-aar）]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/129692888</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/129692888</guid><author>ppss177</author><pubDate>Tue, 21 Mar 2023 17:49:49 +0800</pubDate><description><![CDATA[当一个工程项目中存在多个module时，可使用fat-aar将多个module打包成一个aar；]]></description><category></category></item><item><title><![CDATA[Android异步消息机制]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/129671617</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/129671617</guid><author>ppss177</author><pubDate>Mon, 20 Mar 2023 17:49:17 +0800</pubDate><description><![CDATA[参考《第一行代码》第三版]]></description><category></category></item><item><title><![CDATA[Qt里切割图片资源作为单个控件元素使用]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/108174713</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/108174713</guid><author>ppss177</author><pubDate>Sat, 22 Aug 2020 21:34:22 +0800</pubDate><description><![CDATA[Qt里切割图片资源作为单个控件元素使用
利用象棋盘和象棋为例


如上图需要知道棋子大小以及棋盘每个点的位置
1.获取棋子大小
构造函数里设置
    m_ItemsImage = QPixmap(":/new/items.png");//棋子图片
    m_nItemWidth = m_ItemsImage.width() / COLOR_MAX;//62
    m_nItemHeight = m_ItemsImage.height() / ITEM_MAX;//62
    //其中COLOR_MA]]></description><category></category></item><item><title><![CDATA[Qt中的鼠标与键盘事件]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/108173687</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/108173687</guid><author>ppss177</author><pubDate>Sat, 22 Aug 2020 20:27:14 +0800</pubDate><description><![CDATA[Qt中的鼠标与键盘事件
1.鼠标事件
1.1 左键
重写虚函数void mousePressEvent(QMouseEvent *event);
void MainWindow::mousePressEvent(QMouseEvent *event)
{
    if(event-&gt;button()==Qt::LeftButton)
    {
        qDebug()&lt;&lt;"单击左键";
    }
    else
    {
        qDebug()&lt;&lt;"单]]></description><category></category></item><item><title><![CDATA[Qt中创建使用菜单栏、工具栏、状态栏]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/107627617</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/107627617</guid><author>ppss177</author><pubDate>Tue, 28 Jul 2020 08:46:15 +0800</pubDate><description><![CDATA[Qt中创建使用菜单栏、工具栏、状态栏
1.菜单栏
软件（如QT）中“文件”、“编辑” 这一栏称为菜单栏。主要使用QMenuBar、QMenu、QAction类创建菜单栏及相关选项。
//.h里定义
    QMenuBar *menu;
    QMenu *menu1;
    QMenu *menu2;
    QMenu *menu3;
    QAction *action1;
    QAction *action2;
    QAction *action3;
    QStatusBar *s]]></description><category></category></item><item><title><![CDATA[QT中使用MySQL数据库]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/107474506</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/107474506</guid><author>ppss177</author><pubDate>Mon, 20 Jul 2020 22:38:12 +0800</pubDate><description><![CDATA[QT中使用MySQL数据库
1.连结MySQL
首先正确安装MySQL数据库。
然后将libmysql.lib文件放在QT安装路径下的对应编译器的lib文件夹下，如F:\software\QT5.9.5\5.9.5\mingw53_32\lib。将libmysql.dll文件放在QT安装路径对应编译器的bin文件夹下。
最后可正常连结使用数据库。
    ui-&gt;setupUi(this);
    QSqlQuery query;
    mutex.lock();//互斥锁，可以不用
    QS]]></description><category></category></item><item><title><![CDATA[QT发布应用程序]]></title><link>https://blog.youkuaiyun.com/ppss177/article/details/107473025</link><guid>https://blog.youkuaiyun.com/ppss177/article/details/107473025</guid><author>ppss177</author><pubDate>Mon, 20 Jul 2020 21:03:01 +0800</pubDate><description><![CDATA[QT发布应用程序
1.打开QT编译器的命令框
根据不同编译器选择不同的命令框

2.输入cd/d exe所在路径
建议将exe文件单独放置到一个文件夹，因为发布后的所有文件会在一起，如果用原来的文件夹会和原来的文件混在一起。

3.windeployqt 文件程序名.exe

4.最后结果
发布成功的文件夹，将这个文件夹拷贝到其他电脑上一般都能正常打开应用程序exe


...]]></description><category></category></item></channel></rss>