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

Qt中的常用组件:QWidget篇

目录

1、enabled

2、geometry

3、QRect

4、QIcon

5、Window Opacity

6、QCursor 与 QPixmap

7、QFont

8、QToolTip

9、FocusPolicy

10、QPushButton

11、shortcut 和 QKeySequence

12、setAutoRepeat

13、QRadioButton and QButtonGroup

14、QCheckBox

15、TextFormat 文本格式

16、resizeEvent

17、setAlignment

18、setBuddy

19、QTimer,QLCDNumber,QProgressBar

20、QCalenderWidget

21、QLineEdit

22、QRegularExpression and QRegularExpressionValidator

23、QComboBox

24、QSpinBox and QDoubleSpinBox

25、QDateTimeEdit

26、QSlider

27、QListWidget and QTableWidget 多组件部件

28、QTreeWidget

29、QTabWidget

30、QVBoxLayout(竖直) and QHBoxLayout(水平) and QGridLayout(网格) and QFormLayout(V and H的plus,可以将两个组件设置在一个格式里)

31、QSpacerItem


1、enabled

是否被禁用,通过setEnabled(true or false),禁用后该组件变为灰色

2、geometry

储存着组件的大小与位置信息,分别是x, y, width, height

3、QRect

存放geometry中信息的类,通过他可以取出某个部件的geometry信息,并通过他来访问需要的部分

4、QIcon

通过这个对象来设置对象的图标,其中需要引入qrc机制:如果通过直接指定文件绝对路径的方式,那么无论是自己还是客户端都很容易出现文件误删或者路径变化导致的图标文件失效,所以引入qrc机制,他可以将导入的资源直接在编译时,编译进二进制的可执行程序当中(通过char数组的方式)但是这种机制对于体积很大的文件就没有用了。

创建qrc文件的方式就是在新建文件中选择Qt,其中有Qt source file,新建,并在页面中新建prefix,将其设置为/,这样在访问的时候就可以直接通过":/filename"的方式访问了(当然也可以再设置一个文件夹来存放各种引入qrc的文件,具体访问方式就是再指定文件夹就好了)

5、Window Opacity

设置窗口透明度,大小从0~1,越大越不透明。

6、QCursor 与 QPixmap

QPixmap用于展示图像,QCursor可以设置光标效果,比如我们可以先用图像文件构建QPixmap对象,需要的话可以使用scaled调整大小,再通过这个QPixmap构造QCursor,将其设置进我们所需要的小组件,比如QPushButton,同时如果需要的话,可以构建一个热点(即实际点击的位置),就能够实现将光标放在某个组件上时将光标替换为我们所需要的光标图像的效果

7、QFont

QFont对象用来设置对象的字体,其中可供设置的接口有如下几个:

QFont font;

font.setFamily("eg: 仿宋");

font.setPixelSize(30);         //设置字体大小,以像素为单位

font.setItalic(true);             //设置是否使用斜体

font.setBold(true);             //是否使用粗体

font.setUnderLine(true);   //是否使用下划线

font.setStrikeOut(true);    //是否使用删除线(即在文字中央加上一条斜杠)

label->setFont(font);        //设置font(以label为例)

8、QToolTip

QToolTip对象用来设置构件的提示信息,直接使用字符串即可构建,使用setToolTip设置,同时如果想要设置提示时间的话,通过setToolTipDuration设置即可(单位是毫秒)

9、FocusPolicy

FocusPolicy是组件的一个属性,用来设置焦点策略,常用的策略有:

NoFocus: 不允许当前组件获得焦点

TabFocus: 通过tab键来获得焦点

ClickFocus: 通过点击获得焦点

StrongFocus: 最常用的一个,既可以通过点击获得焦点,也可以通过tab获得焦点

WheelFocus: 可以通过鼠标滚轮滚动获得焦点

10、QPushButton

最常用的组件之一,设置图标的方式:pushButton->setIconSize(QSize(10, 10)),继承自QAbstractButton类

11、shortcut 和 QKeySequence

setShortcut用于设置快捷键,而QKeySequence是Qt提供的枚举类型,用于表示某个具体按键,比如Qt::Key_A, Qt::Key_A + Qt::Key_CTRL(标识ctrl + a),当然也可以通过直接使用按键名的方式,

比如button->setShortcut(QKeySequence("a"))

shortcut被触发的信号时activated

12、setAutoRepeat

设置是否允许连续点击,键盘默认是可以的,鼠标不是,需要通过setAutoRepeat来设置

13、QRadioButton and QButtonGroup

QRadioButton用来设置选择按钮,在提供给用户的多个选择按钮之中,用户只能选择其中一个,当然如果我们想要实现一个多个组别的radiobutton来向用户提供选择的效果,就可以使用QButtonGroup,再通过其addButton来添加radiobutton

14、QCheckBox

复选框,可以供用户选择多个选项,和QRadioButton互相补齐。

15、TextFormat 文本格式

纯文本:Qt::PlainText,纯文本,可以加入QPlainTextEdit组件来设置

富文本:Qt::RichText,内容更丰富的文本格式,比如:<b>这是一段富文本</b>——加粗加大

markdown:Qt::MarkdownText,内置了各种特殊符号来表示文本格式,比如:#这是一段markdown文本——加粗加大

autotext:Qt::AutoText,根据文档内容自动设置文本格式

16、resizeEvent

事件,可以通过重写父类的resizeEvent来使窗口内的部件随窗口大小的改变而改变,当然也有其他方法

17、setAlignment

通过setAlignment来设置label的文本样式,常用的接口有:

Qt::AlignHCenter设置水平方向居中对齐;Qt::AlignVCenter设置竖直方向居中对齐

setIndent(number),设置自动缩进长度,单位是像素

setWorkWrap(true)设置自动换行,否则过长的文本会直接超过label的范围

setMargin(10)设置文本边距,四周都有

18、setBuddy

设置伙伴,比如button->setBuddy(button_1),通过这种方式就将button的伙伴设置为button_1(&A可以设置快捷键)

19、QTimer,QLCDNumber,QProgressBar

QTimer是Qt中的计时器,再构建出QTimer对象之后,可以通过其中的start(number)来启动计时器,并将计时时间设置为number毫秒;当事件结束之后,会触发timeout信号,可以通过connect来使用槽函数处理信号,如果处理方式是获取QLCDNumber中的value,并通过display来设置QLCDNumber来展示新的值,实现倒计时的效果;与QProgressBar相结合,可以实现进度条的效果,也是通过槽函数处理信号

20、QCalenderWidget

提供给用户一个日历(精确到年月日),能够让用户选择日期,并通过selectionChanged信号来获取用户选择的日期。

21、QLineEdit

杭输入框,主要提供的接口

setInputMask("000-000-0000");        //比如在输入电话号码时只能通过这种格式输入

setMaxLength(length);                          //设置文本最大长度

setClearButtonEnabled(true);               //设置按钮一键清空输入框中的所有内容

setEchoMode(true);                               //设置回显模式(QLineEdit::PassWord为密码式的不明文回显)

setPlaceholderText("text");                  //设置占位文本,开始输入时删除

22、QRegularExpression and QRegularExpressionValidator

通过QRegularExpression来设置正则表达式,比如""^1//d{10}$",其中^1表示正则表达式开头,$表示正则表达式结尾,//为转义转义字符,d表示整数,整个表达式的意思就是10个整数。

有了QRegularExpression就可以设置QRegularExpressionValidator,可以通过setValidator来设置检验器

23、QComboBox

设置下拉框,并可以通过addItem来添加选项

24、QSpinBox and QDoubleSpinBox

微调框,其中可以通过setValue or setRange来设置起始值和范围,前者是以整数为单位,后者是以小数为单位

25、QDateTimeEdit

一个输入框,可以供用户选择日期,前面的QDateTime是一个大日历

26、QSlider

设置滑动条,具体又有两种:QVerticalSlider,QHorizontalSlider

该组件的接口有:

setMinimum设置最小值

setMaximum设置最大值

setValue设置初始值

setSingleStep设置每一步的变化单位

27、QListWidget and QTableWidget 多组件部件

QListWidget可以通过addItem来添加新的组件

QTableWidget对于行和列的操作是insertRow and insertColumn,以及设置第一行表头:setHorizontalHeaderItem,设置setVerticalHeaderItem;对于添加单个组件有setItem

28、QTreeWidget

通过addTopLevelItem来添加最顶层控件,每个控件都可以通过addChild来添加其子部件

29、QTabWidget

要设置在新的QWidget中,添加标签页,通过count来获取已有标签页的个数,addTab来添加新的标签页,通过setCurrentIndex来设置当前选中的标签页,通过removeIndex(number)来删除标签页

30、QVBoxLayout(竖直) and QHBoxLayout(水平) and QGridLayout(网格) and QFormLayout(V and H的plus,可以将两个组件设置在一个格式里)

一个页面只能加上一个layout,通过qtdesigner可以添加多个,但是这些layout失去了随着窗口大小改变自身大小的能力。在每一次addWidget时可以制定比例。

对于设置进layout的一个组件,可以设置他的QSizePolicy,比如Expanding

31、QSpacerItem

设置空组件,设置进layout中(通过addSpacerItem)

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

相关文章:

  • 天津做网站选津坤科技wordpress qqworld
  • 351-Spring AI Alibaba Dashscope 多模型示例
  • 东莞专业做网站的公司域名注册在那个网站好
  • 金仓数据库平替MongoDB:医共体数据互通的高效安全之道
  • 基于比特位图映射对List<Object>多维度排序
  • ArrayList和LinkedList
  • 中南建设集团招标网站三点水网站建设合同
  • 网站结构分析具体分析内容企业建网站好
  • 深入探讨JavaScript性能瓶颈,分享优化技巧与最佳实践
  • Mac与Kali主机间SSH连接故障排除:主机密钥变更的解决方案
  • 跨平台C++开发:Ubuntu 24.04下CLion安装与配置
  • 网站不想被百度抓取涉及部署未备案网站
  • 国产数据库替换MongoDB实战:浙江人民医院电子病历系统国产化升级案例
  • 测量连接距离方法
  • 从文件结构、索引、数据更新、版本控制等全面对比Apache hudi和Apache paimon
  • 怎样看网站的浏览量自助建站免费建站平台
  • 怎么用AI进行视觉设计?AI设计全流程技术解析与实战指南
  • Flink 优化-资源配置优化
  • c# 收件单通知单生成程序
  • 类似淘宝的购物网站 建设定制开发网站
  • 【Rust 编程】工作窃取(Work-Stealing)调度算法
  • 做网站与运营一般多少钱企业seo指的是
  • 东莞网站建设设计价格提供手机网站制作哪家好
  • 百度ocr识别解决图形验证码登录问题
  • MySQL配置环境变量
  • springcache作用
  • BMC RTC:服务器硬件管理的“时间心脏”与系统协同核心
  • 使用vite+vue3+ElementPlus+pinia搭建中后台应用-前端
  • 开始改变第六天 MySQL(2)
  • 如何使用wordpress搭建网站广告咨询