QT的UI基础部分详细介绍

 

目录

UI基础

1. QWidget类(掌握)

2. 添加子组件(掌握)

3. 样式表(熟悉)


UI基础

1. QWidget类

QWidget类是所有可视化组件和窗口的基类,因此QWidget中成员可以继承给众多派生类使用。

QWidget最基础的属性:

  • width : const int

宽度,单位像素

可以通过int width() const获得数值,即getter

  • height : const int

高度,单位像素

getter:int height() const

  • x : const int

横坐标,单位像素,原点左上角,正方向右

getter:int x() const

  • y : const int

纵坐标,单位像素,原点左上角,正方向下

getter:int y() const

QWidget最基础的函数:

  • void resize(int w, int h)

重定义宽高

  • void move(int x, int y)

移动到设定的坐标处,所有的组件和窗口以左上角为定位点

  • void setGeometry(int x, int y, int w, int h)

同事设置坐标和宽高

dialog.h

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
// 头文件
#include <QDebug>

class Dialog : public QDialog
{
    Q_OBJECT

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

#endif // DIALOG_H

dialog.cpp

#include "dialog.h"

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    // 重定义宽高
    resize(1000,240);
    // this指针指向主函数中的w对象
    int w = this->width();
    int h = height();
    // 输出
    qDebug() << w << h;

    // 获得位置
    int x = this->x();
    int y = this->y();
    qDebug() << x << y; // 0,0 不准,因为窗口对象还在创建中
    // 移动
    move(100,100);

    // 同时设置坐标和宽高
    setGeometry(400,400,200,200);
}

Dialog::~Dialog()
{

}

2. 添加子组件

以最常见按钮(QPushButton)为例,讲解在窗口中添加子组件的方法。

QPushButton的构造函数如下:

  • QPushButton::QPushButton(const QString & text, QWidget * parent = 0)

参数1:按钮显示的文字

参数2:按钮在哪个对象上

dialog.h

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
// 头文件
#include <QPushButton>

class Dialog : public QDialog
{
    Q_OBJECT

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

private:
    // 私有成员变量
    QPushButton* btn;
};

#endif // DIALOG_H

dialog.cpp

#include "dialog.h"

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    resize(400,400);
    // 创建一个按钮对象
    // 参数2是使用this指针结合多态传参
    btn = new QPushButton("初十",this);
    // 更改按钮大小
    btn->resize(100,100);
    // 移动按钮位置,注意坐标是窗口内部的相对坐标
    btn->move(100,100);
}

Dialog::~Dialog()
{
    // 释放按钮内存
    delete btn;
}

3. 样式表

Qt可以使用QSS语法设置组件的样式效果。

颜色的配置可以通过以下几个方法:

  • QQ截图
  • 在线色表+颜色进制转换

在线颜色选择器 | RGB颜色查询对照表

  • 色彩搭配

Color Palette Generator - Create Beautiful Color Schemes

dialog.h

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
// 头文件
#include <QPushButton>

#define QPushButton_STYTLE (QString("\
/*按钮普通态*/\
QPushButton\
{\
    font-family:Microsoft Yahei;\
    /*字体大小为20点*/\
    font-size:20pt;\
    /*字体颜色为粉色*/\
    color:rgb(238, 210, 238);\
    /*背景颜色*/\
    background-color:rgb(197,146,163);\
    /*边框圆角半径为8像素*/\
    border-radius:8px;\
}\
/*按钮悬停态*/\
QPushButton:hover\
{\
    /*背景颜色*/\
    background-color:#9F79EE;\
}\
/*按钮按下态*/\
QPushButton:pressed\
{\
    /*背景颜色*/\
    background-color:rgb(14 , 135 , 10);\
    /*左内边距为3像素,让按下时字向右移动3像素*/\
    padding-left:3px;\
    /*上内边距为3像素,让按下时字向下移动3像素*/\
    padding-top:3px;\
}"))

class Dialog : public QDialog
{
    Q_OBJECT

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

private:
    // 私有成员变量
    QPushButton* btn;
};

#endif // DIALOG_H

dialog.cpp

#include "dialog.h"

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    resize(400,400);
    btn = new QPushButton("初十",this);
    // 设置样式表
    btn->setStyleSheet(QPushButton_STYTLE);

    btn->resize(100,100);
    btn->move(100,100);
}

Dialog::~Dialog()
{
    delete btn;
}

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Qt是一个跨平台的应用程序开发框架,它提供了一组丰富的库和工具,可以帮助开发人员轻松地创建高质量、漂亮的UI界面设计。Qt可以满足各种开发需求,从桌面应用程序到移动应用程序,从嵌入式系统到图形用户界面等等。QtUI设计风格非常美观,而且非常易于使用。其界面布局精美,视觉效果出色,能够提供出色的用户体验。Qt提供了一些常用的UI控件,例如文本编辑器、按钮、列表、下拉列表和进度条等等。除此之外,Qt用于UI设计的编辑器Qt Designer也提供了一系列的模板和样式表的支持,可以帮助用户轻松创建自定义的UI界面。此外,Qt还通过其内置的QStyle类为开发人员提供了更多的灵活性,使得他们能够创建一个独特的、个性化的UI界面。总体来说,Qt是一个令人印象深刻的UI界面设计框架,它提供了一个优雅且美观的界面,可以帮助开发人员在各种平台和设备上开发出高质量的应用程序。 ### 回答2: Qt作为一个跨平台的开发框架,不仅提供了强大的工具和库,还拥有漂亮的UI界面设计。QtUI设计风格是流行的扁平化设计,使得界面看起来简洁、美观、易于操作。QtUI设计工具集成在Qt Creator中,使用方便,适合开发各种类型的应用程序。 Qt中的界面元素多样,包括按钮、文本框、标签、进度条、滑块等。QtUI设计支持自定义图标、颜色和字体,方便开发人员根据项目需求进行调整和个性化设计。Qt Creator提供了大量的预设模板,开发者可以快速创建应用程序的UI界面,同时也可以通过拖拽元素来构建UI界面,简单易用。 除了基本的UI元素外,Qt还提供了强大的图形引擎,支持高品质的图形渲染。Qt的图形引擎具有很好的表现力,能够处理各种类型的图像和动画,包括几何图形、贝塞尔曲线、PNG和SVG等矢量图形。将这些图形元素结合在一起,可以轻松地创建富有动感的UI界面,提升用户的体验。 总之,Qt具备漂亮的UI界面设计,其丰富的UI元素、可定制性和方便的开发工具使其成为了一个备受欢迎的跨平台开发框架。无论是开发桌面应用、移动应用还是嵌入式应用,QtUI设计都能满足开发者的需求,帮助他们轻松地实现美观的UI界面。 ### 回答3: Qt是一款功能强大、强调跨平台性的框架,它不仅提供了完整的基础库,同时还具备了漂亮的UI界面设计。QtUI界面设计分为前端设计和后端程序实现两个部分。 在前端设计方面,Qt提供了一系列的UI部件,这些部件在外形和样式上具有强大的灵活性。QtUI部件可以通过样式表来定义不同的外观和响应状态,这样可以方便地实现更加个性化的UI设计。此外,Qt还提供了QML语言,通过它可以创建精美的UI界面,同时还能实现与C++代码的无缝结合。 在后端实现方面,Qt提供了一套完整的MVC框架,包括了数据层、业务逻辑层和UI层。这个框架能够有效地分离UI界面和后端业务逻辑,使得UI界面能够更加专注于具体的显示和交互。同时,Qt还提供了信号与槽机制,通过它可以实现对象间的通信,使得代码的编写更加简洁易读。 综上所述,Qt具备了漂亮的UI界面设计,并且提供了一套完整的UI框架,能够帮助开发者轻松实现个性化的UI设计和后端实现。这也是为什么Qt能够被广泛应用于GUI应用程序开发的原因之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值