初学QT(Day02)

这篇具有很好参考价值的文章主要介绍了初学QT(Day02)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天又是学到很多的一天啊!

设置背景图片的方法

今天开始使用代码来实现昨天做出的界面,并熟悉代码中出现的函数

  • 使用setPixmap
  • 使用setstylesheet中的css语法设置:“background-image:"/“border-image”

昨天说过了border-image是将图片平铺在mainwindow中,是某种意义上的实现了图片自适应窗口,今天又学到了使用setScaledContents()函数,这个是真正意义上的图片自适应

关于父窗口使用背景图片影响到子控件的问题

之前在使用qtdesigner创建界面的时候也遇到了这个问题,解决这个问题的方法是在父控件的stylesheet中加上作用域
比如这个父窗口的名字是mainwindow,那么就使用

#mainwindow{
border-image:url(:/Path/XXX.png) ;
}

使用这种方式可以控制父窗口的背景不会影响到子控件。
同样的,在使用qtcreator开发界面的是候也遇到了这样的问题,解决方法同样是使用父窗口的setstylesheet(),加入上面的代码。但是要注意的是:
父窗口的名字需要重新创建,因为setstylesheet是使用css格式的,作用域的名字要使用setObjectName()重新定义,作为一个唯一的标识符
下面是一个示例代码

QLabel* labell=new QLabel(this);
labell->setObjectName("Labell");
labell->setStyleSheet("#Labell{Font-family:宋体;}");

虽然在chatgpt上提问,回答是可以使用,也可以不使用
回答如下

在 Qt 中,setObjectName() 函数用来给控件设置一个唯一的名称标识符。这个名称可以在代码中用来查找和操作控件,并且还可以在样式表中使用 ID 选择器来限定样式的作用范围。

具体来说,当您调用 setObjectName() 函数为一个控件设置名称时,它会将该名称存储在控件的属性中。这个名称可以被其他部分的代码用来查找并操作这个控件。例如,您可以使用 findChild() 函数在父窗口中查找特定名称的子控件,或者在信号槽连接中使用名称来指定信号源和槽接收器。

此外,当您在样式表中使用 ID 选择器时,您需要为控件设置一个唯一的名称才能使选择器生效。如果没有设置名称,样式表中的 ID 选择器无法与控件匹配,并且样式不会应用到相应的控件上。

因此,使用 setObjectName() 函数可以让您更容易地查找和操作控件,并且可以让您使用 ID 选择器来限定样式的作用范围。在实际使用中,我们建议为所有的主要控件(如窗口、对话框、工具栏等)设置名称,以方便管理和维护代码。

在设置样式表时不一定需要为控件设置对象名称。如果您只是想为单个控件设置样式,那么可以直接在控件的构造函数或初始化代码中使用 setStyleSheet() 函数来指定样式。

在QT中不用担心申请的空间不会被释放的问题

因为在程序结束时,Qt会自动使用析构函数释放内存

关于段错误的问题

一定要注意在头文件中定义的变量,在对应的源文件中需要申请内存空间,如果一个没有申请内存空间的成员变量被使用,那么就可能出现段错误,同时文章来源地址https://www.toymoban.com/news/detail-460029.html

到了这里,关于初学QT(Day02)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • go练习 day02

    go中使用mongodb实现增删改查 连接mongodb yaml配置 初始化连接 在初始化方法中调用 在DAO中挂载到BaseDao上 新增操作:添加一条记录 查找多条数据 插入多条数据 更新数据

    2024年02月13日
    浏览(27)
  • 小程序day02

          那麽問題來了,一次點擊會觸發兩個組件事件的話,該怎么阻止事件冒泡呢?         注意点:  只在标签里面用value=“{{info}}”,只会是info到文本框的单向绑定,必须在触发函数里面实现从文本框到info的绑定。然后才能像vue的v-model一样实现双向绑定。  相当于vue里面

    2024年02月06日
    浏览(30)
  • day02-Redis命令

    Redis是一个key-value的数据库,key一般是String类型,value的类型多种多样,value常见的八种类型: Redis支持五种基本的数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set,有序集合)。 各个数据类型应用场景: 类型 简介 特性 场景 String(字符串) 二

    2023年04月16日
    浏览(32)
  • 前端Vue入门-day02

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 指令补充 指令修饰符 v-bind 对于样式控制的增强  操作class 案例:京东秒杀 tab 导航高亮 操作style  v-model 应用于其他表单元素  computed 计算属性 基础语法 computed 计算属

    2024年02月13日
    浏览(47)
  • Day02 - Java基础语法

    目录 1. 注释 使用的技巧 注意点 2. 2.1 概念 2.2 第一个class 3. 字面量 区分技巧 4. 变量 4.1 什么是变量? 4.2 变量的定义格式 4.2.1 格式详解 4.2.2 常用的数据类型 4.2.3 变量的注意事项 5. 数据类型 5.1 Java语言数据类型的分类 5.2 基本数据类型的四类八种 说明 需要记忆

    2024年02月10日
    浏览(41)
  • 每日Bug汇总--Day02

    1、问题:运行SpringBoot项目重新导入Maven报错 报错原因: 在IDEA中的Maven配置出错 解决方案:将setting - Maven配置本地的Maven,重新install 2、问题:在重新install项目中的Maven后,报错 报错原因:未删除test文件夹 解决方案:将Maven删除test文件夹 3、报错原因:项目运行出现和数据

    2024年04月10日
    浏览(34)
  • 代码随想录day02

    ● 力扣题目链接 ● 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 思路 ● 暴力排序,时间复杂度O(n + nlogn) ● 使用双指针,时间复杂度O(n) 代码 ● 力扣题目链接 ● 给定一个含有 n 个正整数的数组和一个正整

    2024年02月13日
    浏览(47)
  • 苍穹外卖day02项目日志

    参考产品原型,设计表和接口。 1.1.1设计表 看员工管理的产品原型: 有员工姓名、账号、手机号、账号状态、最后操作时间等。 注意,操作一栏不是字段,其中的启用禁用才是。 再看添加员工的原型:  可以发现还有性别和身份证号。 不要忘了旁边: 还有密码。 总结出了

    2024年02月14日
    浏览(71)
  • 学习RHCSA的day.02

    目录 2.3常用简单命令 2.4使用Bash执行命令 2.5 命令帮助 常用系统工作命令 1、echo命令 echo命令用于在终端设备上输出字符串或变量提取后的值,语法格式为:“echo [字符串] [$变量]”。 这是在Linux系统中最常用的几个命令之一,但操作却非常简单,执行“echo 字符串”或“ech

    2024年02月02日
    浏览(29)
  • Day02-ES6

    2024年02月03日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包