- 博客(40)
- 收藏
- 关注
转载 数据类型在32位系统和64位系统的字长
因为 C 语言只规定了,long 型占用字节数不小于 int 型, int 型不小于 short 型,所以不同的编译器对于每种数据类型就有不同的实现。数据(字长)模型是编译器用来确定基本数据类型长度的,有 LP64、ILP64、LLP64、ILP32、LP32。I:intL:longP:pointerLL:long long64:上述类型字长 6432:上述类型字长 32Data TypeILP32LP32ILP64LP64LLP64宏定义–––LP64
2021-10-20 15:29:10
2079
原创 QT控件禁用状态设置为透明模式(1)
QGroupBox::disabled{color: transparent;border-style: none;}QPushButton:disabled{color: transparent;border-style: none;}QRadioButton::disabled{color: transparent;border-style: none;background-color:transparent;}QLabel::disabled{color: tran
2021-07-29 13:46:38
732
原创 Qt5打开工程卡顿解决办法
Qt5打开工程卡顿解决办法先关闭qt Creator,再删除 QtProject文件夹后,然后再打开Qt Creator即可。Linux: /home/YourUserName/.config/QtProjectWindows: C:\Users\YourUserName\AppData\Roaming\QtProject这个目前只能稍微优化下,还没有彻底解决,可能是页面代码过多吧...
2021-04-15 08:57:27
960
原创 QWidget::setLayout: Attempting to set QLayout "" on MainWindow问题
QWidget::setLayout: Attempting to set QLayout “” on MainWindow问题这个问题出在setLayout只能用在QWidget内,要在QMainwindow中使用的话,用以下代码 QWidget * widget = new QWidget(); setCentralWidget(widget); centralWid...
2019-12-18 19:36:25
1220
转载 Qt主界面卡死的解决方案-一些具体实现方式
Qt主界面卡死的解决方案-一些具体实现方式简介我们在写UI文件的时候,有很多情况下,是需要界面来处理业务中某些耗时的操作,这时候如果不处理好界面相关的逻辑的话,主界面就会卡死,这时候就需要我们上多线程了逻辑1首先上业务上一个很简单的栗子比如我们的代码中有这么一个耗时的操作 // 第一种耗时的操作 auto fWhile1 = [] () { for ...
2019-12-13 19:45:38
4076
转载 Inno Setup入门(二十九)——使用dll(3)
Inno Setup入门(二十九)——使用dll(3)概述前面分两节介绍了如何使用dll,这里将对调用外部或者系统dll做一些综述。Pascal脚本能调用外部dll(标准Win32 API或者各程序员编写的dll)中的函数,在调用外部dll中的函数前,需要声明所调用的函数原型,使用external声明dll文件,对于一个Pascal描述的函数原型,例如function A(B: Integer...
2019-11-06 09:23:06
791
转载 Inno Setup入门(二十八)——使用dll(2)
Inno Setup入门(二十八)——使用dll(2)许多程序在安装过程中,会有升级的可能,但是又有个问题就是,当前的程序正在运行,这样就不能达到升级的效果,因此有必要坚持并能够结束指定程序的过程,如何在安装包中实现呢?其实很简单,就是调用dll,关于dll,可以用C++或者VB编写,个人推荐用C++,这样编写的dll文件似乎在数据类型上能够和pascal更好地融合,代码很简单,这里我就不啰嗦了...
2019-11-05 23:39:04
898
转载 Inno Setup入门(二十七)——使用dll(1)
Inno Setup入门(二十七)——使用dll(1)这里讲讲如何调用dll中的函数。先来一个简单的例子:[code]varmyPage:TWizardPage;Button :TNewButton;Cnt:Integer;function GetCurrentProcessId(): Integer;external 'GetCurrentProcessId@C:\Windows...
2019-11-05 23:36:41
1243
转载 Inno Setup入门(二十五)——Inno Setup类参考(11)
Inno Setup入门(二十五)——Inno Setup类参考(11)今天说说TNewCheckListBox类。该类和ListBox差不多,只是下面的项可以用CheckBox或者RadioButton选择,是一种比较复杂的类型。该类继承自TCustomListBox,自身具有以下属性和函数:TNewCheckListBox = class(TCustomListBox) funct...
2019-11-05 23:31:16
750
转载 Inno Setup入门(二十四)——Inno Setup类参考(10)
Inno Setup入门(二十四)——Inno Setup类参考(10)这里介绍一下FolderTreeView 类。TFolderTreeView = class(TCustomFolderTreeView) property OnChange: TNotifyEvent; read write; property OnRename: TFolderRenameEvent; read...
2019-11-05 23:27:53
623
转载 Inno Setup入门(二十三)——Inno Setup类参考(9)
Inno Setup入门(二十三)——Inno Setup类参考(9)今天就简单说一下ProgressBar。TNewProgressBar = class(TWinControl)property Min: Longint; read write;property Max: Longint; read write;property Position: Longint; read wri...
2019-11-05 23:23:51
508
转载 Inno Setup入门(二十二)——Inno Setup类参考(8)
Inno Setup入门(二十二)——Inno Setup类参考(8)列表框列表框(ListBox)是Windows应用程序中重要的输入手段,其中包括多个选项用户可以从其中选择一个或者多个,程序根据用户的选择做出相应的处理,列表框在外观上和存储框类似,但是行为却有很大的不同,列表框中项一般是预先给定的,而存储框则可以让用户进行输入,并且列表框中的项被选择之后也会触发事件。Pascal脚本中列表...
2019-11-05 23:17:20
478
转载 Inno Setup入门(二十一)——Inno Setup类参考(7)
Inno Setup入门(二十一)——Inno Setup类参考(7)复选框复选框(CheckBox)用于多个并不互斥的几个选项中作出一个或者多选择,例如字体可以有粗体、斜体和下划线,这三种状态可以任意组合,像这样的选项可以采用复选框实现。Pascal脚本中对应的类是TcheckBox,其定义如下:< xmlnamespace prefix ="o" ns ="urn:schemas-...
2019-11-05 23:11:38
649
转载 Inno Setup入门(二十)——Inno Setup类参考(6)
Inno Setup入门(二十)——Inno Setup类参考(6)存储框存储框也是典型的窗口可视化组件,同编辑框类似,可以输入、显示文本,但是和编辑框不同的是,编辑框只能编辑、显示单行文本,而存储框则可以对多行文本进行操作。存储框的类定义如下:< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office...
2019-11-05 23:06:10
467
转载 Inno Setup入门(十九)——Inno Setup类参考(5)
Inno Setup入门(十九)——Inno Setup类参考(5)单选按钮单选按钮在安装中也很常见,例如同一个程序可以选择安装不同的性质的功能,例如选择32位或者64位等,两者是排他性的,因此可以通过单选按钮(RadioButton)来实现,在同一个容器中放置的单选按钮是自动带有排他性的,Pascal脚本中单选按钮的定义如下:TRadioButton = class(TButtonCont...
2019-11-05 22:59:22
658
转载 Inno Setup入门(十八)——Inno Setup类参考(4)
Inno Setup入门(十八)——Inno Setup类参考(4)编辑框编辑框也叫文本框,是典型的窗口可视化组件,既可以用来输入文本,也可以用来显示文本,是程序设计中最常用的组件之一,可以获取用户输入的许多信息。Pascal中的编辑框由类Tedit实现,该类的定义如下:TEdit = class(TCustomEdit)property AutoSelect: Boolean; read...
2019-11-05 22:51:52
787
转载 Inno Setup入门(十七)——Inno Setup类参考(3)
Inno Setup入门(十七)——Inno Setup类参考(3)标签(Label)是用来显示文本的主要组件之一,也是窗口应用程序中最常用的组件之一,通过对标签的使用,将能够给用户提供更加详细的信息。Pascal脚本中的标签由类TlLabel实现,该类定义如下:TLabel = class(TCustomLabel) property Alignment: TAlignment; re...
2019-11-05 22:41:58
637
转载 Inno Setup入门(十六)——Inno Setup类参考(2)
Inno Setup入门(十六)——Inno Setup类参考(2)这里将接着在前面的基础上介绍如何在自定义页面上添加按钮。按钮属于Tbutton类,该类继承自TbuttonControl,类定义如下:TButton = class(TButtonControl)property Cancel: Boolean; read write;property Caption: String; r...
2019-11-05 09:12:04
720
转载 Inno Setup入门(十五)——Inno Setup类参考(1)
Inno Setup入门(十五)——Inno Setup类参考(1)nno setup脚本能够支持许多的类,这些类使得安装程序的功能得到很大的加强,通过对这些类的使用,将会创建出许多让人惊奇的安装程序,下面开始类的学习。创建自定义向导页自定义向导页需要在InitializeWizard事件函数中创建,通过使用CreateCustomPage函数创建一个空的页面,或者使用CreateInput...
2019-11-04 22:45:16
1119
转载 Inno Setup入门(十四)——替换安装程序和卸载程序的图标
Inno Setup入门(十四)——替换安装程序和卸载程序的图标通常Inno生成的安装文件的图标是一个光盘和显示器,如下图。同时,程序安装好之后,在安装目录下的卸载程序的图标也是一样的,其实我们也可以自己修改。首先生成的安装文件图标。这个比较简单,只需要在Setup段中添加相应的语句即可:SetupIconFile=jiong.ico该语句指定了输出文件的图标,注意如果图标不是和脚本在...
2019-11-04 22:39:23
953
转载 Inno Setup入门(十三)——Pascal脚本(2)
事件函数(2)function CheckPassword(Password: String): Boolean;如果安装程序在Pascal 脚本中发现该函数,它自动显示密码页并调用CheckPassword检查密码。返回True 表示接受密码,返回False拒绝。测试代码如下:function CheckPassword(Password: String): Boolean;begin...
2019-11-04 22:32:34
958
转载 Inno Setup入门(十二)——Pascal脚本(1)
Inno Setup入门(十二)——Pascal脚本(1)事件函数(1)Inno Setup支持以下函数和过程。function InitializeSetup(): Boolean;该函数在安装程序初始化时调用,返回False 将中断安装,True则继续安装,测试代码如下:function InitializeSetup(): Boolean;beginResult := MsgB...
2019-11-04 22:05:49
1604
转载 Inno Setup入门(十一)——完成安装后执行某些程序
Inno Setup入门(十一)——完成安装后执行某些程序有些时候我们的程序虽然能够很好的完成安装,但是程序的配置工作可能需要其他的一些程序来辅助完成,如果不执行这些程序,主程序就不能很好的完成工作,甚至不能完成工作,一个很明显的例子是,目前许多程序是通过NET技术开发的,这就要求计算机上必须安装有.net Framework,否则主程序运行不了,只有预先安装了NET Framework后主程序...
2019-11-04 21:49:20
4170
转载 Inno Setup入门(十)——操作注册表
Inno Setup入门(十)——操作注册表有些程序需要随系统启动,或者需要建立某些文件关联等问题,这些都是通过在安装程序中对注册表进行操作的结果。Inno Setup中通过[registry]段实现对注册表的操作。本段说明:参数列表: 参数说明 Root 根键。必须是下列中的一个: HKCR(HKEY_CLASSES_ROOT) HK...
2019-11-04 20:27:03
2145
转载 QGraphicsView 框架学习(六) 设计问题
QGraphicsView 框架学习(六) 设计问题书到用时方恨少啊,遇到一个设计问题,为了给QGraphicsItem添加一些特性,比如给它们添加一个选择框,提供resize操作,前面用的方法是子类化这个类,现在发现这个方法挺麻烦的。赶快翻书,《设计模式》给出了Adapter等结构模式,《设计模式新思维》给出了模板实现设计模式的方法,目前的问题是尽量利用Qt提供的现成的类,尽量复用现有的工具,...
2019-11-04 15:39:22
264
转载 QGraphicsView 框架学习(五) 边框与控制点
QGraphicsView 框架学习(五) 边框与控制点选择控制以前已经实现了,为矩形对象默认添加了8个控制点,可以通过鼠标移动控制点,调整图形的大小。多边形,直线,曲线等没有提供这8个控制点,而是直接将每个输入点当做控制点,实际上也应该给它加一个边框。这两天看了一下著名的inkspace,它提供了一个SelTrans对象来对图元进行缩放,拉伸,旋转,扭曲等操作;还提供了 control_po...
2019-11-04 15:31:59
1154
转载 QGraphicsView 框架学习(四),Undo Redo
QGraphicsView 框架学习(四),Undo Redo撤销,重做,任何编辑器的必备工具。还是Qt的提供的标准解决方案。QUndoCommand;QUndoStack;QUndoView;图形编辑的每一个动作都应该有相应的撤销和重做机制。我们为每个动作派生一个对象。Qt demo里提供了两个例子,一个是使用QGraphic是View图形框架的,一个是Qt自己写的一个简单的图形编辑器。...
2019-11-04 15:28:46
928
转载 QGraphicsView 框架学习(三),图形对象的剪贴板操作
QGraphicsView 框架学习(三),图形对象的剪贴板操作图形编辑必备功能,剪贴板。Qt本身提供 QClipboard 对象,它使用也很方便,有轮子就不用自己造轮子,不说废话,我们需要利用QMimeData对象来存储我们的图形元素,所以我们要声明一个QMimeData的派生类。class ShapeMimeData : public QMimeData{ Q_OBJECTp...
2019-11-04 15:23:49
849
2
转载 QGraphicsView 框架学习(二),组合与撤销组合
QGraphicsView 框架学习(二),组合与撤销组合 QGraphicsItemGroup 是Qt二维图形框架提供的对图元进行组合操作的类。它提供了了void addToGroup(QGraphicsItem * item) 和 void removeFromGroup(QGraphicsItem *);两个方法。实际使用中可以通过 scene的createItemGroup()方法...
2019-11-04 15:08:14
520
转载 QGraphicsView 框架学习(一)、图形元素的编辑
QGraphicsView 框架学习(一)、图形元素的编辑代码在 http://download.youkuaiyun.com/detail/firebolt2002/8782273一、给图形对象加控制点,用户通过鼠标来操作控制点来编辑图形,参考MFC drawcli的实现。很多人通过QGraphicsItem的派生类,然后重载几个函数来处理鼠标消息: void mousePressEvent(...
2019-11-04 14:57:01
1004
转载 Inno Setup入门(九)——修改安装过程中的文字显示
Inno Setup入门(九)——修改安装过程中的文字显示 前面说到过可以使用不用的语言文件实现不同的显示方式,方便与国际接轨,事实上即使没有语言文件也可以实现修改。[Messages] 段用于定义安装程序和卸载程序中显示的消息。一般不需要创建 [Messages] 段,因为所有的消息在Inno Set...
2019-11-04 00:26:05
1191
转载 Inno Setup入门(八)——有选择性的安装文件
Inno Setup入门(八)——有选择性的安装文件这主要使用[Components]段实现,一个演示的代码如下:[setup];全局设置,本段必须AppName=TestAppVerName=TESTDefaultDirName="E:\TEST"AppVersion=1.0Compression=lzma2/maxShowLanguageDialog=yes [Compo...
2019-11-04 00:09:13
1532
1
转载 Inno Setup入门(七)——提供安装语言选项
Inno Setup入门(七)——提供安装语言选项Inno Setup安装目录下有一个Languages的文件夹,该文件夹提供了可供使用的语言,通过在脚本中加入[languages]段,可以实现该项功能,实现代码如下:[setup];全局设置,本段必须AppName=TestAppVerName=TESTDefaultDirName="E:\TEST"AppVersion=1.0C...
2019-11-04 00:05:27
678
转载 Inno Setup入门(六)——在程序目录下创建文件夹
标题Inno Setup入门(六)——在程序目录下创建文件夹创建文件夹可以使用[dirs]段实现,代码如下:[setup];全局设置,本段必须AppName=TestAppVerName=TESTDefaultDirName="E:\TEST"AppVersion=1.0[files]Source: "F:\desktop\test\ipmsg.exe"; DestDir: "...
2019-11-03 23:58:03
1821
转载 Inno Setup入门(五)——添加readme文件
Inno Setup入门(五)——添加readme文件这个实现起来很简单,就是在[files]段中的某个预先作为readme的文件后面添加标志位isreadme:[setup];全局设置,本段必须AppName=TestAppVerName=TESTDefaultDirName="E:\TEST"AppVersion=1.0[files]Source: "F:\desktop\...
2019-11-03 23:14:11
556
转载 Inno Setup入门(四)——为程序创建桌面快捷方式
Inno Setup入门(四)——为程序创建桌面快捷方式Icons这一可选段定义所有创建在开始菜单和\或其它位置 (比如桌面) 的快捷方式。一个例子如下:[setup];全局设置,本段必须AppName=TestAppVerName=TESTDefaultDirName="E:\TEST"AppVersion=1.0[files]Source: "F:\desktop\ipms...
2019-11-03 23:08:47
1134
转载 Inno Setup入门(三)——指定压缩方式
Inno Setup入门(三)——指定压缩方式Setup段中的compression指定了采用的压缩方式,较高的压缩率需要较多的时间或者需要更大的内存空间,可用的值如下:zipzip/1到zip/9bzipbzip/1 到bzip/9lzmalzma/fastlzma/normallzma/maxlzma/ultralzma/ultra64lzma2...
2019-11-03 22:53:39
1003
转载 Inno Setup入门(二)——修改安装过程中的图片
Inno Setup入门(二)——修改安装过程中的图片修改安装过程中的图片一般编译之后,安装过程中出现在左边图片是是下图这个样子的:其实也可以修改它,只需要在setup段中作一点稍微的修改,加一行代码即可:[setup]AppName=TestAppVerName=TESTDefaultDirName="E:\TEST"AppVersion=1.0WizardImageFile...
2019-11-03 22:40:55
1041
转载 Inno setup入门(一)最简单的安装脚本
Inno setup入门(一)最简单的安装脚本[setup]AppName=TestAppVerName=TESTDefaultDirName="E:\TEST"AppVersion=1.0[files]Source: "F:\desktop\ipmsg.exe"; DestDir: "{app}"编译完成后在脚本文件所在的目录下生成一个Output的文件夹,其中包含了生成好的...
2019-11-03 22:23:10
2951
1
转载 xshell开启终端256色(转)
xshell开启终端256色(转)一般的Linux发行版默认的终端都是16色的,但事实上几乎所有的终端都支持256色终端。只需要把环境变量TERM设为xterm-256color(xterm算是终端模拟器的一个标准,Gnome Terminal用gnome-256color,Konsole可以用konsole-256color)。***** 但是export TERM=xterm-256c...
2019-04-15 11:15:57
2506
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人