文章目录
- Qt
- 1. 控件的概念
- 2. QWidget
- enabled
- geometry
- windowTitle
- windowIcon
- windowOpacity
- cursor
- font
- toolTip
- toolTipDuring
- styleSheet
Qt
1. 控件的概念
Widget 是 Qt 中的核心概念。英文原义是 “小部件”,我们此处也把它翻译为 “控件”。控件是构成一个图形化界面的基本要素。按钮、列表视图、输入框,、滚动条、下拉框等。都可以称为 “控件”。Qt内置了大量的常用控件。
2. QWidget
enabled
设置控件是否可使用。true 表示可用,false 表示禁用。
isEnabled () 获取到控件的可用状态。
setEnabled 设置控件是否可使用。true 表示可用,false 表示禁用。
示例:创建一个按钮并且设置为禁用状态。
- 创建一个按钮并且设置setEnabled是否可以,true为可用,false为不可用。
示例:创建两个按钮,其中一个按钮可以控制另一个按钮的禁用状态。
- 我们在父类Widget中创建两个按钮类QPushButton。
- 调整按钮的位置和大小,并且连接信号槽,btn1是被控制的按钮,当btn1未被禁用时,点击btn1会触发信号槽输出 " 按下按钮btn1 "。btn2是控制按钮,点击可以切换btn1的禁用状态。
- 运行程序,实现了示例的要求。
geometry
位置和尺寸,包含 x、y、width、height 四个部分。其中坐标是以父元素为参考进行设置的。
位置和尺寸,是四个属性的统称:
• x 横坐标
• y 纵坐标
• width 宽度
• height 高度
示例:创建上下左右四个按键,点击按钮可以控制Target向对应的方向移动。
- Qt可以通过代码或可视化界面创建控件,这里使用可视化界面创建所需要的控件。
- 对上下左右四个方向的按钮关联信号槽,控制上下左右位置的变化,要注意这里是先获取Target的原始位置进行调整,如果不想让Target发生形变,必须保持rect.width()和rect.height()不变,只改变Target的位置。
- 可以看到我们可以控制Target的位置移动了。
windowTitle
设置 widget 标题。
- 直接使用setWindowTitle设置标题名即可。
windowIcon
设置 widget 图标。
设置图标时,我们必须导入图片到我们的项目中,当然可以直接使用决定路径,但是Qt提供qrc机制管理静态资源。
qrc是qt的资源管理方案:
qrc 文件是一种 XML 格式的资源配置文件,用 XML 记录硬盘文件及对应资源名称,应用程序通过资源名称访问资源。在 Qt 开发中可将资源文件添加到项目以便访问和管理,资源文件可在 qrc 文件所在目录同级或子目录下。构建程序时,Qt 把资源文件二进制数据转成 cpp 代码编译到 exe 中,使依赖资源 “路径无关”。
优点:确保了图片、字体、声音等资源能够真正做到 “目录无关”,无论如何都不会出现资源丢失的情况。
缺点:不适合管理体积大的资源。如果资源比较大(比如是几个 MB 的文件),或者资源特别多,生成的最终的 exe 体积就会比较大,程序运行消耗的内存也会增大,程序编译的时间也会显著增加。
- 创建一个新文件,要创建Qt Resource File。
- 设置文件名。
- 打开该文件,并且设置保存图片的路径,简单一点即可。
- 添加我们需要的文件即可。
- 添加成功了,有了资源的路径就可以在我们的项目中使用了。
- QIcon是图像对象,用我们复制的路径创建一个新的QIcon并且设置到Widget,可以看到窗口的图标就改变了。
windowOpacity
设置 widget 透明度。
- 使用setWindowOpacity调整窗口的透明度。
cursor
鼠标悬停时显示的图标形状,可以是普通箭头、沙漏、十字等形状,在 Qt Designer 界面中可清楚看到可选项。
- setCursor用来设置鼠标悬停图标,这里截图没有显示。
font
字体相关属性,涉及字体家族、字体大小、粗体、斜体、下划线等样式。
- 设置字体
toolTip
鼠标悬停在 widget 上会在状态栏中显示的提示信息。
ui->label1->setToolTip("这是文字");
toolTipDuring
toolTip 显示的持续时间。
ui->label1->setToolTipDuration(3000);
styleSheet
允许使用 CSS 来设置 widget 中的样式,Qt 中支持的样式非常丰富,对于前端开发人员上手非常友好。
编辑右侧的 styleSheet 属性, 设置样式: