在UI里面引用QTextEdit控件,在对其进行样式设计的时候,通常也会对其滚动条(
horizontalScrollBar、verticalScrollBar) 进行样式设计。
例如我们对QTextEdit 的垂直滚动条进行样式设计,样式表会这样写:
QTextEdit#textEdit
background:rgba(0,0,0,0.1);
color:rgba(255,255,255,0.8);
border-radius:2px;
border:none;
font-size:14px;
font-family:"微软雅黑";
QScrollBar:vertical
border: none;
background: transparent;
width: 6px;
QScrollBar::handle:vertical
background-color: rgba(255,255,255,1);
min-height: 30px;
border-radius:3px;
width: 6px;
QScrollBar::add-line:vertical
border: none;
;
QScrollBar::sub-line:vertical
border: none;
;
QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical
background:transparent;
border-radius:3px;
在Qt Designer 里面看是正常的, 如图:
但是当运行程序(Ctrl + R)时,样式表就没有生效,如图:
============================ 解决方案=================================
方案1:在类的构造函数里对滚动条进行polish抛光操作。
ReadingTimeSettingDialog::ReadingTimeSettingDialog(QWidget *parent) :
QWidget(parent),
ui(new Ui::ReadingTimeSettingDialog)
ui->setupUi(this);
ui->textEdit->verticalScrollBar()->style()->polish(ui->textEdit->verticalScrollBar());
(1)将QTextEdit 的原有滚动条隐藏,设置滚动条策略未 ScrollBarAlwaysOff
(2) 添加新控件Vertical Scroll Bar放置在QTextEdit的左侧
(3) 设置verticalScrollBar的样式表
(4)构造函数里面设置verticalScrollBar为QTextEdit的滚动条
ReadingTimeSettingDialog::ReadingTimeSettingDialog(QWidget *parent) :
QWidget(parent),
ui(new Ui::ReadingTimeSettingDialog)
ui->setupUi(this);
ui->textEdit->setVerticalScrollBar(ui->verticalScrollBar);
完整版QT使用样式表来对控件样式进行调整。
使用setStyleSheet来进行设置Button样式实例以及源代码、QT样式表属性完整版、QT系统字体、程序示例以及完整原始代码、启动动画示例、QT为按钮、标签添加图片的几种方法、QButton弹出菜单、QT界面换肤解决方案和解决思路、一文搞懂QT样式表。
在Qt官网上,Qt for Embedded Linux Fonts模块已经说的很清楚了,搞了好多天html Qt for Embedded Linux FontsQt for Embedded Linux uses the FreeType 2 font engine to produce font output. The formats supported depends on the loc...
特别说明一下,只是对某个控件的风格表setStyleSheet()函数进行配置是不能完成个性化滚动条的,我在这里踩了很大一个坑。本篇博客是介绍在代码中如何设置一个个性化的 PYQT 滚动条的,PYQT 原生的滚动条相当丑陋(灰色大帝,白色方块)。同时 ,在 QT Designer 的属性设置中,是缺少滚动条相关的属性设置的。所以现在就给出了一个个性化滚动条的方案。完成效果如图:原UI改动后。
设置内容周围内边距的填充。的值为0,这意味着焦点移动的距离是固定的,通常与文本输入框的宽度或高度有关。可以显示多行可编辑的格式化文。默认是无边框的,可以和父控件完美融合。组件中文本周围的边距,单位是像素。来镜像应用程序布局时,文本的水平对齐方式也会被镜像,但。时,焦点会自动移动到该组件,允许开始输入文本。组件宽度和高度内的水平和垂直对齐方式。制表位之间的默认距离。属性控制文本的水平对齐方式。属性控制文本的垂直对齐方式。属性来自定义焦点移动的距离。组件边界之间的空间大小。用于控制文本的换行行为。
QTextEdit和QPlainTextEdit样式表中属性选择器不起作用的问题。
描述:QPlainTextEdit中设置QPlaintTextEdit[readOnly="true"]{....} QPlainTextEdit[readOnly="false"]{.....} 来为QPlainTextEdit在‘可编辑/不可编辑‘两种不同状态下设置不同的样式无效。
Qt文档中有这样一段话
(1)setWidgetResizable(true)
当滚动区域的widgetResizable 属性为False时,在Designer中或应用界面手工调整滚动区域部件的大小时,内容部署层不会跟随调整,但可以通过应用代码进行调整,具体调整方法请见下面介绍。
当滚动区域的widgetResizable 属性为True时,在Designer中或应用界面手工调整滚动区域部件的大小时,内容部署层会跟随调整。但验证widgetResi