发现Qt官方下载有 5.12.7 更新,于是卸载了 5.12.4 ,重新安装了 5.12.7 , 安装细节过程记录一下备忘。
安装包
Q 5.12.7 : http://download.qt.io/archive/qt/5.12/,Windows x86 版,自带的 Qt Creator : 4.11.0 , Based on Qt 5.14.0 (MSVC 2017, 32bit),安装时记得勾选 VS2017 32和64位,以及 perl(编译opcua要用到) 。
发现Qt官方下载有 5.12.7 更新,于是卸载了 5.12.4 ,重新安装了 5.12.7 , 安装细节过程记录一下备忘。
安装包
Q 5.12.7 : http://download.qt.io/archive/qt/5.12/,Windows x86 版,自带的 Qt Creator : 4.11.0 , Based on Qt 5.14.0 (MSVC 2017, 32bit),安装时记得勾选 VS2017 32和64位,以及 perl(编译opcua要用到) 。
Qt 的“图形用户界面”是设计软件时需要考虑的问题。通常存在的问题是,不熟悉布局的用户在设计界面时,往往忽略了”布局“和”占位“功能的使用,而是直接往默认窗体上拖放控件,是一种“绝对定位”的方式。这样造成的问题时,窗口布局上的控件只有在设计尺寸时才是设计的样子,一旦拖拉窗体,会发现窗体变大而控件还保持原地不变,不能够根据窗体扩展而自适应。这显然不符合逻辑的。其实,Desinger 是有提示的,在顶级Widget 前面有个红色圆圈禁止图标,表明顶级widget没有添加布局。
熟练使用布局和占位,是做好图形界面的前提。Qt预定义的布局管理器总共有四种:QBoxLayout、QGridLayout、QFormLayout、QStackedLayout,它们都是QLayout的子类。
采用纯代码自绘控件,对编码者要求比较高。
准备两个图片,打开和关闭
在 QCheckBox 控件,邮件改写样式表,即可实现开关状态改变。使用时需要设置 width 和 height ,否则不会动态适应大小。
QCheckBox::indicator { width: 100px; height: 100px; } QCheckBox::indicator:unchecked { image: url(:/on); } QCheckBox::indicator:checked { image: url(:/off); }
也可以将此QSS写入到代码当中
ui->checkBox->setStyleSheet("QCheckBox::indicator {width: 100px;height: 100px;}QCheckBox::indicator:unchecked {image: url(:/on);}QCheckBox::indicator:checked {image: url(:/off);}");
由 Animial 基类派生出 Dog 类 和 Cat 类,分别实现自己的 voice() 方法;注册 Dog类以及 Cat 类,然后由字符串 Dog 和 Cat 创建对象。