QT之qss教程-QLineEdit

本文详细介绍了QLineEdit控件的各种样式设置方法,包括外边框、倒角、内边距、背景色、选中高亮背景色等属性的配置。特别针对不同模式如密码模式和只读模式下的样式进行了说明。


QLineEdit {
	/* 外边框 */
	border:2px solid red;
	
	/* 倒角 */
	border-radius: 10px;
	
	/*  内边框:上下和左右的距离*/
	padding: 10 8px;
	
	/* 背景色 */
	background: yellow;
	
	/* 选中高亮背色 */
	selection-background-color:blue;
	min-width:200px;
	min-height:40px;
}

/* 密码模式 */
QLineEdit[echoMode="2"] {
	lineedit-password-character:9679;
}

/* 当是只读模式时 */
QLineEdit:read-only {
	background:red;
}


<think>我们正在讨论Qt样式表(QSS)中的`selection-background-color`属性。根据引用,这个属性用于设置选中项的背景颜色。 引用[1]展示了在QTableView中设置选中行背景色的例子:`QTableView::item { selection-background-color: red; }`。 引用[2]提到,alternate-background-color用于交替背景色,但这不是我们当前关注的属性。 引用[3]展示了一个QLineEdit的样式设置,其中也使用了`selection-background-color`。 因此,我们可以总结:`selection-background-color`用于设置当项目被选中时的背景颜色。它通常用于可选中项(如QTableView、QListView、QTreeView、QListWidget、QTableWidget、QTreeWidget等)以及像QLineEditQTextEdit这样的文本编辑控件中被选中文本的背景。 使用方法: 1. 在QSS中,通过选择器指定要应用样式的控件。 2. 设置`selection-background-color`属性为你想要的颜色。 示例: 对于QTableView,设置选中行的背景色为红色: QTableView::item { selection-background-color: red; } 对于QLineEdit,设置选中文本的背景色为深灰色: QLineEdit { selection-background-color: darkgray; } 注意:在QTableView中,有时需要同时设置`selection-color`(选中项的前景色,即文字颜色)来确保文字清晰可见。 另外,如果设置了整个应用程序的样式,也可以使用全局选择器,例如: * { selection-background-color: blue; } 但这样会应用于所有支持该属性的控件。 问题:如何确保设置生效? 有时,如果其他样式规则覆盖了该属性,可能不会生效。另外,某些控件可能需要设置不同的子控件(如QTableView中的item)或者使用不同的伪状态(如:selected)。 因此,我们给出一个完整的示例,设置一个QTableView的选中行背景色和文字颜色: ```css QTableView::item:selected { background-color: red; /* 也可以使用selection-background-color */ color: white; /* 也可以使用selection-color */ } ``` 或者使用: ```css QTableView::item { selection-background-color: red; selection-color: white; } ``` 两种方式都可以。注意,在Qt中,`background-color`和`selection-background-color`是两个不同的属性。在选中状态下,通常`selection-background-color`会覆盖`background-color`。但是,使用伪状态`:selected`并设置`background-color`也是一种常见做法。 根据引用[1]中的例子,他们使用了`selection-background-color`,所以我们可以按照这种方式。 现在,我们来生成相关问题。</think>在 Qt 中,`selection-background-color` 是 QSS 样式表中用于设置选中项背景颜色的属性。以下是详细使用方法及注意事项: ### 基本用法 1. **设置选中区域背景色**: ```css QTableView::item { selection-background-color: red; /* 设置选中项背景为红色 */ selection-color: white; /* 设置选中项文字颜色为白色 */ } ``` 此代码会使 `QTableView` 中被选中的行显示红色背景和白色文字[^1]。 2. **通用控件设置**: ```css * { selection-background-color: #3498db; /* 设置全局选中背景色 */ } ``` 适用于所有支持选中状态的控件(如 `QListView`、`QTreeView` 等)[^3]。 ### 常见问题解决 1. **设置不生效**: - 确保控件启用了选中功能(如 `setSelectionMode()`) - 检查样式覆盖:更具体的子控件选择器优先级更高 - 添加 `!important` 强制覆盖: ```css QTableView::item:selected { background-color: red !important; } ``` 2. **隔行变色冲突**: 当使用 `setAlternatingRowColors(true)` 时[^2],需额外设置: ```css QTableView { alternate-background-color: #f0f0f0; /* 交替行背景色 */ } QTableView::item:selected { background-color: #3498db; /* 选中行背景色 */ } ``` ### 完整示例 ```css /* 全局文本控件选中样式 */ QLineEdit, QTextEdit { selection-background-color: #2ecc71; /* 选中文本背景色 */ selection-color: black; /* 选中文本颜色 */ } /* 表格控件选中行样式 */ QTableView::item:selected { background-color: #e74c3c; /* 选中行背景 */ color: white; /* 选中行文字 */ border: none; /* 移除边框 */ } ``` > ⚠️ 注意:某些控件(如 `QTableWidget`)需要同时设置 `item:selected` 和 `selection-background-color` 确保兼容性[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值