day04(Qt)UI设计

目录

UI设计

1. Designer 设计师(掌握)

2. Layout 布局(重点)

2.1 基本使用

2.2 高级用法

2.3 代码布局(了解)

3. Designer与C++的关系(熟悉)

4. 基本组件(掌握)

4.1 QWidget

4.2 QLabel 标签

4.3 QAbstractButton 按钮类

4.4 QLineEdit 单行文本输入框

4.5 QComboBox 组合框

4.6 一组与数字相关的组件


UI设计

1. Designer 设计师(掌握)

Designer是Qt内置的一款界面设计程序,设计的界面文件为.ui格式。

C++程序员通常不会单独启动Designer,如果要在项目中使用Designer程序,只需要在新建项目时,勾选“创建界面文件”选项。

这样的项目自带dialog.ui,双击dialog.ui可以直接使用Designer程序打开此文件。

2. Layout 布局(重点)

2.1 基本使用

可以把布局看做是一个透明的盒子,内部放置各种组件对象,这些组件对象会按照布局预设的规则自动排序,并形成一个布局整体。

Qt中有四种布局:

主要学习前两种,垂直/水平布局指的是布局中所有的子组件垂直/水平排成一排,常用属性如下:

需要注意的是,最终的显示效果是多个因素综合决定的,并非一个因素完全决定。

2.2 高级用法

  • 伸展器

如果需要在布局中填充空白,可以使用伸展器组件。

  • 嵌套

布局和布局之间可以嵌套,内层布局相当于外层布局的一个组件。

  • 贴合

选中窗口对象,点击,可以让最外层布局贴合窗口,以达到窗口大小自适应效果。

可以点击打破任何一个选中的布局,例如取消贴合效果,需要先选中窗口,然后点击此按钮。

2.3 代码布局(了解)

也可以使用C++进行布局,仅做展示。

dialog.h

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QVBoxLayout>
#include <QPushButton>

class Dialog : public QDialog
{
     
    Q_OBJECT

public:
    Dialog(QWidget *parent = 0);
    ~Dialog();

private:
    QVBoxLayout* layout;
    QPushButton* btn1;
    QPushButton* btn2;
};

#endif // DIALOG_H

dialog.cpp

#include "dialog.h"

Dialog::Dialog(QWidget
### UI界面设计的最佳实践 UI界面设计的核心目标在于提供良好的用户体验,使用户能够高效、直观地完成任务。以下是关于最佳实践的具体说明: #### 易用性和可用性的优先级 为了提高用户的满意度和效率,UI设计应注重易用性和可用性[^1]。这意味着设计师需要确保界面布局清晰明了,功能按钮的位置符合用户的习惯路径,并通过减少学习成本来增强用户的熟悉感。 #### 符合人类认知的设计原则 遵循人类的认知规律是降低误操作率的关键之一。例如,在颜色的选择上,红色通常用于警示信息;而在图标设计方面,则推荐采用普遍认可的标准图形表示法,从而帮助用户快速理解其含义并作出反应。 ### 常见的UI界面设计工具和技术栈 针对不同需求层次以及技术背景的人群,存在多种多样的UI开发途径可供选择。下面列举了一些主流的技术方案及其特点: #### 使用Python进行UI界面构建 如果倾向于利用编程语言创建自定义程度较高的桌面应用或者跨平台移动程序的话,那么基于Python生态系统的几个主要框架将是不错的选择: - **Tkinter**: 这是一个轻量级且内置支持于标准发行版内的GUI库,适合新手开发者迅速搭建原型系统[^2]. ```python import tkinter as tk root = tk.Tk() label = tk.Label(root, text="Hello Tkinter!") label.pack() root.mainloop() ``` - **PyQt5/PySide2**: 提供更丰富的组件集和支持现代外观风格的能力,适用于复杂商业软件项目的需求. ```python from PyQt5.QtWidgets import QApplication, QLabel app = QApplication([]) label = QLabel('Hello PyQt5!') label.show() app.exec_() ``` - **Kivy**: 面向触摸屏优化的良好解决方案,特别适配移动端设备上的多媒体处理场景. ```python from kivy.app import App from kivy.uix.label import Label class MyApp(App): def build(self): return Label(text='Hello Kivy!') if __name__ == '__main__': MyApp().run() ``` 除了上述提及的内容外还有其他众多优秀的第三方类库可用于特定领域如数据分析可视化等方面的工作流程当中去进一步扩展我们的视野范围之外还能满足更多样化的实际应用场景下的具体要求. ### 数据可视化的补充视角 当涉及到数据呈现时,有效的视觉表达同样属于广义范畴内的UI组成部分。这里简单介绍几款专注于此方向的强大工具有助于我们更好地讲述故事给观众听闻: - **Matplotlib & Seaborn**: 主要面向静态统计图绘制任务的基础工具包组合,擅长生成高质量出版物级别的图像素材. ```python import matplotlib.pyplot as plt import seaborn as sns sns.set_theme(style="whitegrid") tips = sns.load_dataset("tips") ax = sns.barplot(x="day", y="total_bill", data=tips) plt.show() ``` - **Plotly**: 支持高度互动特性的在线服务平台接口封装版本集合体,允许读者自行探索隐藏背后的数据关联模式关系网络结构特征等等.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值