当前位置: 首页 > news >正文

qt常用控件

widget是qt的核心概念,是qt的控件。

以上都属于控件

qwidget类

属性

enable:决定控件是否能使用

enable的代码

objectName:作为所选中控件名,可手动更改,唯一标识。

geometry

目的:按钮实现对控件的移动和尺寸变化

• x 横坐标
• y 纵坐标
• width 宽度
• height ⾼度

获取控件地址和尺寸

目的:实现用按键实现对控件的移动

需要用QRect的成员函数对坐标更改

成员函数==方法

平移的方法

传入x,y,长,宽来改变

x,y改变位置,长宽改变大小

void Widget::on_pushButton_up_clicked()
{QRect rect=ui->pushButton_target->geometry();ui->pushButton_target->setGeometry(rect.x(),rect.y()-5,rect.width(),rect.height());//宽度和高度不变意味着控件大小不变,只改变所在位置的值
}void Widget::on_pushButton_down_clicked()
{QRect rect=ui->pushButton_target->geometry();ui->pushButton_target->setGeometry(rect.x(),rect.y()+5,rect.width(),rect.height());//宽度和高度不变意味着控件大小不变,只改变所在位置的值
}void Widget::on_pushButton_right_clicked()
{QRect rect=ui->pushButton_target->geometry();ui->pushButton_target->setGeometry(rect.x()+5,rect.y(),rect.width(),rect.height());//宽度和高度不变意味着控件大小不变,只改变所在位置的值
}void Widget::on_pushButton_left_clicked()
{QRect rect=ui->pushButton_target->geometry();ui->pushButton_target->setGeometry(rect.x()-5,rect.y(),rect.width(),rect.height());//宽度和高度不变意味着控件大小不变,只改变所在位置的值
}

qt中提供了许多API,以不同的位置作为源点

不考虑标题栏(geometry),考虑标题栏(framegeometry)

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QLabel *label = new QLabel("Hello",this);//要显示,必须带上this,也就是父控件label->setGeometry(100,10,200,300);QRect rect=label->geometry();//获取label的位置QRect rect2=label->frameGeometry();//获取label的位置,携带标题栏qDebug()<<"label:"<<rect;qDebug()<<"label:"<<rect2;
}
void Widget::on_pushButton_target_clicked()
{QRect rect=this->geometry();//获取target的位置QRect rect2=this->frameGeometry();//获取target的位置,携带标题栏qDebug()<<"target"<<rect;qDebug()<<"target"<<rect2;
}

两者区别的原因是:在构造⽅法中,Widget刚刚创建出来,还没有加⼊到对象树中.此时也就不具备Window frame.

代码实现

windowTitle

作用:对窗口标题做操作,属于QWidget。

应用范围:针对顶层窗口,对输入框和按键无用

如果给按钮设置了窗口标题,程序没报错。

windowlcon 

作用:表示窗口的图标,针对顶层窗口使用

用法:将图片的绝对地址放入,但是需要用/替代\防止转义字符。

但是在实际当中不能使用绝对路径,因为不同的路径位置不一样。因此需要在当前路径下或者下一级目录下用文件夹存放,用相对路径解决。也可以用图片转代码的形式存放。

qrc机制

窗口透明度

规定:使用浮点数(二进制科学计数法),浮点数分为符号位、有效数字(二进制,0.5、0.25、0.125)、指数部分。由于float和double有效数字 部分长度有限,因此无法凑出0.1这种数字,导致透明度出现误差。(这套体系速度快但是对于有些小数无法精确标识,因此两个浮点数比较很容易出错,一般用做差,判定差的绝对值小于预期误差范围)

windowOpacity的规则:超过范围,就无法设置进去

API说明
windowOpacity()用于获取当的透明度,范围0.0->1.0
setWindowOpacity(float n)设置透明度

cursor

作用:更改图标效果

cursor():控件显示光标

setcursor:更改光标形状

QGuiApplication:全局光标,不应用与系统

更改cursor

属性更改

代码更改

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);this->setCursor(QCursor(Qt::WaitCursor));//给当前页面设置等待光标
}

系统自带光标种类

 enum CursorShape {ArrowCursor,UpArrowCursor,CrossCursor,WaitCursor,IBeamCursor,SizeVerCursor,SizeHorCursor,SizeBDiagCursor,SizeFDiagCursor,SizeAllCursor,BlankCursor,SplitVCursor,SplitHCursor,PointingHandCursor,ForbiddenCursor,WhatsThisCursor,BusyCursor,OpenHandCursor,ClosedHandCursor,DragCopyCursor,DragMoveCursor,DragLinkCursor,LastCursor = DragLinkCursor,BitmapCursor = 24,CustomCursor = 25};

创建对象,不用挂对象树,设置光标。

自定义光标

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPixmap pixmap(":/cat.png");//光标所在地pixmap=pixmap.scaled(64,64);//光标尺寸QCursor q(pixmap,2,2);//创建 QCursor 对象, 并指定 "热点" 为 (2, 2) 坐标位置this->setCursor(q);}

font

作用:获取字体信息

属性修改

代码修改

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QLabel* text=new QLabel(this);text->setText("hello");QFont font;font.setFamily("仿宋");//字体样式font.setPointSize(20);//字体大小font.setWeight(30);//字体粗细font.setBold(true);//字体加粗,true weight75,false 为50font.setItalic(true);//倾斜font.setUnderline(true);//下划线font.setStrikeOut(true);//删除线text->setFont(font);}

toolTip

作用:鼠标悬停控件,给出控件详细信息 

setToolTip:设置内容

setToolTipduring:设置提示时间长度,单位ms

代码实现:

设置按钮的TOOLTIP,以及它们持续的时间。

focuspolicy

作用:获取焦点,焦点是针对单一控件,独立操作。

获取焦点的实现

焦点获取一般通过tab和鼠标,而qt可以设置控件获取焦点的方法

实现方法

属性

nofocus的不能被操作

但tab操作和单鼠标操作

代码实现

stylesheet

作用:通过css设置widget的样式,界面具体是什么样子。称为QSS

QSS:键值对的方式,键和值用:分隔 每对之间用;分割设置之后,直接应用一套模板

代码实现夜间模式功能

文字白色,背景黑色

日间模式:背景色亮色,文字暗色,先设置窗口的背景颜色,文本框设置白色背景,黑色文字,设置按钮颜色

夜间模式:背景色黑色,文字白色,其余都是这样,先窗口,文本、按钮。背景background-color: 文字 color:

重要的是:单词拼写问题

问题:计算的颜色如何表示,如果用单词设置颜色太少了 

RGB表示,屏幕上的像素是包含RGB的小灯泡,用三个字节来表示RGB。因此表示颜色(R,G,B)各自的字节表示

目的:如何设置初始窗口背景,防止太白

用取色器进行对需要的颜色进行RGB取色,然后用rgb(R,G,B)

http://www.dtcms.com/a/456880.html

相关文章:

  • 离散化模板
  • linphone + minisipserver 下载和配置
  • 网站建设登录界面代码wordpress 按钮美化
  • 吴恩达机器学习课程(PyTorch 适配)学习笔记:3.4 强化学习
  • jEasyUI 自定义窗口工具栏
  • Spring Boot 和 MyBatis 环境下实现动态数据源切换
  • 2025 年度国产大模型「开源 vs. 闭源」深度评测与实战指南
  • 网页设计与网站建设电话香洲网站建设
  • 移动论坛网站模板免费下载revolution slider wordpress
  • TPM(Total Productive Maintenance)现场管理
  • 从 0 到 1 搭建 Python 语言 Web UI自动化测试学习系列 11 自动化测试--框架设计--基础知识 7--各种弹窗处理
  • ubuntu terminal 设置代理
  • 《传感器与检测技术》第 2 章 电阻式传感器原理与应用
  • Linux中input子系统
  • 探索Linux:开源世界的钥匙
  • GitHub 热榜项目 - 日榜(2025-10-08)
  • 手写Function.prototype.bind:从原理到完整实现
  • 百度做网站的公司施工企业的施工现场消防安全责任人应是
  • 做电商网站报价网站开发工程师需要会写什么
  • (3)容器布局进阶:Spacer、Divider、Frame 与 Alignment
  • 墨西哥证券交易所(BMV)等多个交易所股票数据API对接文档
  • 【数据分析与可视化】2025年一季度金融业主要行业资产、负债、权益结构与增速对比
  • app网站建设阿里巴巴卓拙科技做网站吗
  • 乌苏市城乡建设局网站北京朝阳区邮政编码
  • 个人用云计算学习笔记 --18(NFS 服务器、iSCSI 服务器)
  • 智能制造——解读MES在各行业中的需求与解决方案【附全文阅读】
  • 老题新解|棋盘覆盖
  • 网站可不可以做自己的专利东莞沙田网站建设
  • Redis Hash 全解析:从入门到精通,解锁高性能对象存储的钥匙
  • 14.排序