目录

一、核心属性表格

二、enable

参数介绍:

注意事项:

代码示例:

运行结果:

简单运用:

三、geometry

参数介绍:

注意事项:

代码示例:

运行结果:

简单运用:

四、windowTitle

代码示例:

运行结果:

五、windowIcon

参数介绍:

注意事项:

代码示例:

运行结果:

补偿知识:

六、windowOpacity

参数介绍:

代码示例:

运行结果:

七、cursor

内置光标:

代码示例:

运行结果:

简单运用:

补偿事项:

八、font

参数介绍:

代码示例:

运行结果:

九、toolTip

代码示例:

运行结果:

十、focusPolicy

参数类型:

代码示例:

运行结果:


一、核心属性表格

二、enable

参数介绍:
  • true:表示启用,可以进行正常操作
  • false:表示禁用,不能进行操作
注意事项:
  • 如果一个widget被禁用,那么他的子类也会被禁用
  • 这里的禁用是用户无法进行输入事件,外观上一般为灰色
代码示例:
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    QPushButton* bnt=new QPushButton(this);
    bnt->setText("被禁用的控件");
    bnt->setEnabled(false);//奖bnt这个控件禁用
}
运行结果:
  • 控件变成灰色
  • 无法进行点击操作

简单运用:
  • 用按钮2来控制按钮1是否被禁用
  • 没有被禁用时打印日志
  • 被禁用时无法被点击
void Widget::on_pushButton_clicked()
{
    qDebug()<<"我被点击了!!!";
}


void Widget::on_pushButton_2_clicked()
{
    bool flag=ui->pushButton->isEnabled();
    if(flag)
    {
        ui->pushButton->setEnabled(false);
        ui->pushButton->setText("我禁止被点击");
        ui->pushButton_2->setText("启用");
    }
    else
    {
        ui->pushButton->setEnabled(true);
        ui->pushButton->setText("我可以被点击");
        ui->pushButton_2->setText("禁用");
    }
}

三、geometry

参数介绍:
  • x:横坐标
  • y:纵坐标
  • width:宽度
  • height:高度
注意事项:
  • x和y默认情况下是表示控件的左上角到窗口的左上角的横纵坐标
  • x是从左到右增加的,y是从上到下增加的
  • widget 作为⼀个窗⼝ (带有标题栏, 最⼩化, 最⼤化, 关闭按钮), 那么在计算尺⼨和坐标的时候就有两种算法. 包含 window frame 和 不包含 window frame
  • x(), y(), frameGeometry(), pos(), move() 都是按照包含 window frame 的⽅怯来计算的
  • geometry(), width(), height(), rect(), size() 则是按照不包含 window frame 的⽅怯来计算的

代码示例:
void Widget::on_pushButton_clicked()
{
    QRect Rect=ui->label->geometry();//获取label的位置
    ui->label->setGeometry(Rect.x()+100,Rect.y()+100,Rect.width()+20,Rect.height()+20);//将label的位置往下移动100个像素点,向右移动100个像素点,高度和宽度各增加20像素点
}
运行结果:
  • 每次点击都可以使标签移动一定的单位

简单运用:
  • 用4个按钮作为控制键控制一个标签进行上下左右的移动
void Widget::on_pushButton_up_clicked()
{
    QRect rect=ui->pushButton_label->geometry();
    ui->pushButton_label->setGeometry(rect.x(),rect.y()-5,rect.width(),rect.height());
}


void Widget::on_pushButton_left_clicked()
{
    QRect rect=ui->pushButton_label->geometry();
    ui->pushButton_label->setGeometry(rect.x()-5,rect.y(),rect.width(),rect.height());
}


void Widget::on_pushButton_right_clicked()
{
    QRect rect=ui->pushButton_label->geometry();
    ui->pushButton_label->setGeometry(rect.x()+5,rect.y(),rect.width(),rect.height());
}



void Widget::on_pushButton_down_clicked()
{
    QRect rect=ui->pushButton_label->geometry();
    ui->pushButton_label->setGeometry(rect.x(),rect.y()+5,rect.width(),rect.height());
}

四、windowTitle

代码示例:
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    this->setWindowTitle("QQ音乐");
}
运行结果:

五、windowIcon

参数介绍:
  • QIcon:图片的路径
注意事项:
  • 避免使用绝对路径:代码中的绝对路径在程序发布到其他电脑后必然失效,应严格避免,使用相对路径。
  • 确保相对路径准确匹配:使用 相对路径时,必须在程序工作目录下创建完全对应的images文件夹并放入图片,否则加载将失败。
  • 首选 Qt 资源系统:最可靠的方式是将图片添加到项目的 .qrc资源文件中,通过 “:/icons/icon.png”方式访问,这样资源会被编译进程序内部,彻底避免路径问题。
代码示例:
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    QIcon icon(":/PixPin_2026-04-27_09-30-09.png");
    this->setWindowIcon(icon);
}
运行结果:

补偿知识:
  • 创建⼀个 Qt Resource File (qrc ⽂件)
  • 使⽤ : 作为开头, 表⽰从 qrc 中读取资源
  • / 是上⾯配置的前缀
  • PixPin_2026-04-27_09-30-09.png 是资源的名称

六、windowOpacity

不透明度

参数介绍:
  • 返回一个0~1的小数
  • 越大透明度越低,0表示完全透明,1表示完全不透明
代码示例:
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    this->setWindowOpacity(0.5);//设置窗口半透明
}
运行结果:
  • 窗口半透明

七、cursor

光标样式

内置光标:
  • Qt::ArrowCursor- 标准箭头光标
  • Qt::PointingHandCursor- 手形光标(通常用于链接)
  • Qt::WaitCursor- 等待/忙碌光标(通常是沙漏或旋转圆圈)
  • Qt::CrossCursor- 十字光标
  • Qt::IBeamCursor- 文本输入光标(I型)
  • Qt::SizeAllCursor- 移动光标(四个方向的箭头)
  • Qt::SizeHorCursor- 水平调整大小光标
  • Qt::SizeVerCursor- 垂直调整大小光标
  • Qt::SizeFDiagCursor- 左上到右下调整大小光标
  • Qt::SizeBDiagCursor- 左下到右上调整大小光标
  • Qt::ForbiddenCursor- 禁止操作光标(带斜杠的圆圈)
代码示例:
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->pushButton->setCursor(QCursor(Qt::WaitCursor));//将光标设置为一个内置光标
}
运行结果:
  • 移动到该按键区域光标变为加载样式
简单运用:
  • 设置一个个性化光标
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    QPixmap pixmap(":/PixPin_2026-04-27_10-25-35.png");// 创建⼀个位图对象, 加载⾃定义光标图⽚
    pixmap.scaled(32,32);//缩放图片为32*32的像素图片
    QCursor cursor(pixmap,3,3);//创建一个cursor对象,并把热点设置为(3,3)
    ui->pushButton->setCursor(cursor);
}
补偿事项:
  • 热点是光标点击有效的点,当设置一个个性化光标时图片太大,设置热点可以确定图片的哪个位置点击是有效的

八、font

字体样式

参数介绍:
  • QFont:

代码示例:
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    QFont font;
    font.setPointSize(20);//字体大小设置为20

    font.setFamily("宋体");//字体样式为宋体

    font.setBold(true);// 设置字体加粗

    font.setItalic(true);// 设置字体倾斜

    font.setUnderline(true);// 设置字体下划线

    ui->label->setFont(font);//将样式设置到该文本
}
运行结果:

九、toolTip

提示说明

代码示例:
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->pushButton->setToolTip("这是一个yes按键");
}
运行结果:
  • 光标移动到按键上会有提示说明

十、focusPolicy

焦点

参数类型:
  • Qt::FocusPolicy 是⼀个枚举类型. 取值如下

枚举值

说明

Qt::NoFocus

控件不参与焦点管理,无法通过键盘或鼠标获取焦点(默认值)。

Qt::TabFocus

控件可以通过按 Tab 键获得焦点。

Qt::ClickFocus

控件可以通过鼠标点击获得焦点。

Qt::StrongFocus

控件可以通过 Tab 键和鼠标点击获得焦点。这是大多数可编辑控件的默认设置。

Qt::WheelFocus

控件可以通过鼠标滚轮获得焦点(在某些平台或样式中可能不可用)。

代码示例:
  •         全设置为TabFocus

运行结果:
  • 每点击一下键盘的Tab键就会换到下一个输入框

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐