如何使用样式表更改 QSlider 手柄宽度

2023-12-09

我有一个应用程序,我不想在 10" 触摸屏上运行。我正在尝试使 QSlider 手柄更大,以便更容易移动。我在样式表中找到了大量更改手柄宽度的示例,但是当我运行代码时,这些更改没有反映出来。我正在使用 PyQt5 Designer,这里是滑块的样式表。

QSlider::groove:horizontal {height: 10px; margin: 0 0;}
QSlider::handle:horizontal {background-color: black; border: 1px; height: 
40px; width: 40px; margin: 0 0;}

这是主程序:

from Slidertest import Ui_MainWindow
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow 

class RPTApp(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(RPTApp, self).__init__(parent)
        self.setupUi(self)

def main():

    app = QApplication(sys.argv)
    window = RPTApp()
    window.show()
    app.exec_()    

if __name__ == '__main__':
    main()

这是滑块的设计器代码:

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(640, 480)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.PS_timeSlider = QtWidgets.QSlider(self.centralwidget)
        self.PS_timeSlider.setGeometry(QtCore.QRect(100, 100, 371, 50))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, 
QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)  
        sizePolicy.setHeightForWidth(self.PS_timeSlider.sizePolicy().
     hasHeightForWidth())
     #needed to add a return and break the line above
        self.PS_timeSlider.setSizePolicy(sizePolicy)
        self.PS_timeSlider.setBaseSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setPointSize(12)
        font.setKerning(False)
        self.PS_timeSlider.setFont(font)
        self.PS_timeSlider.setFocusPolicy(QtCore.Qt.WheelFocus)
        self.PS_timeSlider.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
        self.PS_timeSlider.setToolTip("")
        self.PS_timeSlider.setStatusTip("")
        self.PS_timeSlider.setWhatsThis("")
        self.PS_timeSlider.setAccessibleName("")
        self.PS_timeSlider.setAccessibleDescription("")
        self.PS_timeSlider.setStyleSheet("QSlider::groove:horizontal 
{height: 10px; margin: 0 0;}\n"
"QSlider::handle:horizontal {background-color: black; border: 1px; height: 
40px; width: 40px; margin: 0 0;}\n"
"")
        self.PS_timeSlider.setMinimum(0)
        self.PS_timeSlider.setMaximum(100)
        self.PS_timeSlider.setSingleStep(1)
        self.PS_timeSlider.setPageStep(5)
        self.PS_timeSlider.setProperty("value", 50)
        self.PS_timeSlider.setSliderPosition(50)
        self.PS_timeSlider.setTracking(True)
        self.PS_timeSlider.setOrientation(QtCore.Qt.Horizontal)
        self.PS_timeSlider.setInvertedAppearance(False)
        self.PS_timeSlider.setInvertedControls(False)
        self.PS_timeSlider.setTickPosition(QtWidgets.QSlider.TicksBothSides)
        self.PS_timeSlider.setTickInterval(1)
        self.PS_timeSlider.setObjectName("PS_timeSlider")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 640, 26))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

我已经尝试了在搜索中找到的所有内容,但没有运气。如果您能提供任何帮助,我将不胜感激。


为了让它发挥作用,我发现必须在凹槽组件上设置边框。另外,为了使手柄大于凹槽,必须在手柄上设置负边距(参见自定义QSlider在 Qt 文档中):

QSlider::groove:horizontal {
    border: 1px solid;
    height: 10px;
    margin: 0px;
    }
QSlider::handle:horizontal {
    background-color: black;
    border: 1px solid;
    height: 40px;
    width: 40px;
    margin: -15px 0px;
    }

PS:如果将滑块添加到布局中,可能需要设置其最小高度,以防止其被压缩回原始尺寸。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用样式表更改 QSlider 手柄宽度 的相关文章

  • Python - 将宽字符字符串从二进制文件转换为 Python unicode 字符串

    这是漫长的一天 我有点困惑 我正在读取一个包含大量宽字符字符串的二进制文件 我想将它们转储为 Python unicode 字符串 为了解压非字符串数据 我使用 struct 模块 但我不知道如何对字符串执行相同的操作 例如 阅读 系列 一
  • 使用 python 进行串行数据记录

    Intro 我需要编写一个小程序来实时读取串行数据并将其写入文本文件 我在读取数据方面取得了一些进展 但尚未成功地将这些信息存储在新文件中 这是我的代码 from future import print function import se
  • python 中的代表

    我实现了这个简短的示例来尝试演示一个简单的委托模式 我的问题是 这看起来我已经理解了委托吗 class Handler def init self parent None self parent parent def Handle self
  • Python模块可以访问英语词典,包括单词的定义[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 python 模块 它可以帮助我从英语词典中获取单词的定义 当然有enchant 这可以帮助我检查该单词是否存在于英语中
  • 如何迭代按值排序的 Python 字典?

    我有一本字典 比如 a 6 b 1 c 2 我想迭代一下by value 不是通过键 换句话说 b 1 c 2 a 6 最直接的方法是什么 sorted dictionary items key lambda x x 1 对于那些讨厌 la
  • 如何使用 Plotly 中的直方图将所有离群值分入一个分箱?

    所以问题是 我可以在 Plotly 中绘制直方图 其中所有大于某个阈值的值都将被分组到一个箱中吗 所需的输出 但使用标准情节Histogram类我只能得到这个输出 import pandas as pd from plotly import
  • 在 Python distutils 中从 setup.py 查找脚本目录的正确方法?

    我正在分发一个具有以下结构的包 mymodule mymodule init py mymodule code py scripts script1 py scripts script2 py The mymodule的子目录mymodul
  • 通过列表理解压平列表列表

    我正在尝试使用 python 中的列表理解来展平列表 我的清单有点像 1 2 3 4 5 6 7 8 只是为了打印这个列表列表中的单个项目 我编写了这个函数 def flat listoflist for item in listoflis
  • 填充两个函数之间的区域

    import matplotlib pyplot as plt import numpy as np def domain x np arange 0 10 0 001 f1 lambda x 2 x x 2 0 5 plt plot x
  • Pandas 数据帧到 numpy 数组 [重复]

    这个问题在这里已经有答案了 我对 Python 很陌生 经验也很少 我已经设法通过复制 粘贴和替换我拥有的数据来使一些代码正常工作 但是我一直在寻找如何从数据框中选择数据 但无法理解这些示例并替换我自己的数据 总体目标 如果有人真的可以帮助
  • 在Python中调整图像大小

    我有一张尺寸为 288 352 的图像 我想将其大小调整为 160 240 我尝试了以下代码 im imread abc png img im resize 160 240 Image ANTIALIAS 但它给出了一个错误TypeErro
  • 如何使用列表作为pandas数据框中的值?

    我有一个数据框 需要列的子集包含具有多个值的条目 下面是一个带有 运行时 列的数据框 其中包含程序在各种条件下的运行时 df condition a runtimes 1 1 5 2 condition b runtimes 0 5 0 7
  • 在 Pandas 中使用正则表达式的多种模式

    我是Python编程的初学者 我正在探索正则表达式 我正在尝试从 描述 列中提取一个单词 数据库名称 我无法给出多个正则表达式模式 请参阅下面的描述和代码 描述 Summary AD1 Low free DATA space in data
  • python Soap zeep模块获取结果

    我从 SOAP API 得到如下结果 client zeep Client wsdl self wsdl transport transport auth header lb E authenticate self login res cl
  • 创建嵌套字典单行

    您好 我有三个列表 我想使用一行创建一个三级嵌套字典 i e l1 a b l2 1 2 3 l3 d e 我想创建以下嵌套字典 nd a 1 d 0 e 0 2 d 0 e 0 3 d 0 e 0 b a 1 d 0 e 0 2 d 0
  • mac osx 10.8 上的初学者 python

    我正在学习编程 并且一直在使用 Ruby 和 ROR 但我觉得我更喜欢 Python 语言来学习编程 虽然我看到了 Ruby 和 Rails 的优点 但我觉得我需要一种更容易学习编程概念的语言 因此是 Python 但是 我似乎找不到适用于
  • Ubuntu 上的 Python 2.7

    我是 Python 新手 正在 Linux 机器 Ubuntu 10 10 上工作 它正在运行 python 2 6 但我想运行 2 7 因为它有我想使用的功能 有人敦促我不要安装 2 7 并将其设置为我的默认 python 我的问题是 如
  • 在Python中按属性获取对象列表中的索引

    我有具有属性 id 的对象列表 我想找到具有特定 id 的对象的索引 我写了这样的东西 index 1 for i in range len my list if my list i id specific id index i break
  • Python 无法使用套接字绑定我的外部/公共 IP 地址,给出错误但是当使用本地 IP 地址时,错误不会显示

    这是出现主要错误的代码 与我的本地 IP 的绑定将起作用 s bind 192 168 1 4 port 与我的公共 IP 的绑定失败并出现以下错误 s bind 99 99 99 99 port WinError 10049 请求的地址在
  • 列表值的意外更改

    这是我的课 class variable object def init self name name alias parents values table name of the variable self name 这是有问题的函数 f

随机推荐

  • 使用 JavaScript 验证印度货币的正则表达式

    谁能告诉我如何使用正则表达式检查文本框中输入的金额 印度货币 是否有效 我的条件很少 金额不得包含超过 1 个小数点 但可以有一个小数点 如果有小数点 则后面应跟一位或多位数字 金额只能包含数字 最多一位小数 如果我输入像 10 000 这
  • 无法运行Opengl程序

    我从 OpenGL superible 第五版中获取了这个程序 我按照书中所说的那样设置了所有内容 包括路径 还包括项目的现有项目 然后我在项目中创建了一个新的c 文件 并复制粘贴我从官方网站下载的代码 Block cpp OpenGL S
  • CYPRESS REMIX 错误:Webpack 编译错误

    我目前使用 Remix 的独立堆栈 但尝试使用 cypress 运行测试时 在 cypress 浏览器中向我发送了该错误 有人有类似的问题吗 我从头开始使用独立堆栈 https github com remix run indie stac
  • ValueError:以 10 为基数的 int() 的文字无效:“stop”

    每次我尝试代码时它都能工作 但是当我输入时 stop 它给了我一个错误 ValueError 以 10 为基数的 int 的文字无效 stop def guessingGame global randomNum guessTry 3 whi
  • 如何修复 jslint 消息:变量已定义

    我试图实现以下代码 var action function e if e var e window event e cancelBubble true if e stopPropagation e stopPropagation conta
  • Android:AsyncTask 发出 HTTP GET 请求?

    我是 Android 开发新手 我的问题是 我是否使用 AsyncTask 来发出 HTTP GET 请求 JSON 响应 它是否正确 如果这确实是真的 有谁知道我在哪里可以看到这样的例子 如果没有 你能纠正我吗 谢谢 是的 你是对的 As
  • Swift:对成员“map”的引用不明确

    我正在阅读 Swift 编程语言 4 2 在开始的章节 第 23 页 我有以下要求 重写闭包以对所有奇数返回零 我的解决方案是 let myArray Int 1 2 3 4 5 myArray map number Int in if n
  • 使用下划线对“Function2”参数进行类型推断失败

    为什么类型推断器放弃这一点 def test a Seq Int b Seq Int a b zipped map 2 no Like so
  • 均衡数组所需的最小转换次数[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 给定一个包含 n 个正元素 包括 0 的数组 我们只能执行一种转换 即增加列表中除一个元
  • 扫描器在 nextInt 上抛出 NoSuchElementException

    逻辑工作正常 但是当 while 循环到达末尾并重新开始时 当它使用此行再次从键盘读取我的下一个选项时 gt option kb nextInt 它给了我一个例外 更准确地说是下面这个 Exception in thread main ja
  • 用java读取下一个单词

    我有一个文本文件 其中包含以下内容 ac und accipio annehmen ad zu adeo hinzugehen 我读取文本文件并遍历各行 Scanner sc new Scanner new File translate t
  • 在 Vim 中自定义语法突出显示

    我怎么能保留所有当前格式对于文件类型但是添加功能 我想突出显示 vim 文件中的颜色 以便突出显示每种颜色终端将如何解析它 我创建了一个 vim vim 文件 其中包含 syn keyword yellow yellow contained
  • SyntaxError:仅当启用“classProperties”插件时才能使用类属性

    当我使用以下命令初始化应用程序时 出现以下语法错误react native init MyApp SyntaxError Users MyAccount RNProjects app node modules react native pa
  • 与作曲家的项目结构

    我正在尝试使用作曲家文件创建一个项目 原因主要是我不想上传到 git 的依赖关系 我的预期结构是这样的 项目根文件夹 项目子文件夹 供应商 与required 依赖项 索引 php 作曲家 json 自述文件 md 但是使用composer
  • 将对象数据传递给 Vue.js 中的样式

    我希望能够将数据从对象传递到
  • UIButtons 在动画期间没有响应 - iOS Swift 3

    我正在构建一个计算器应用程序 当我点击按钮时会出现一个简短的动画 问题是按钮在动画时没有响应 这使得应用程序感觉滞后 我找到了一些 Objective C 的解决方案 使用 UIViewAnimationOptionAllowUserInt
  • 为什么我的键盘挂钩多次收到相同的按键向上和按键按下事件?

    In 我之前的问题 我报告说扫描条形码时键盘挂钩会报告所有内容两次 我把这归因于按键和关键事件 并收到了很好的建议 仔细观察后 我发现每个数字实际上被报告了四次 这是一个粗略的 通过打印进行调试 谁能建议我可能做错了什么 您需要更多信息吗
  • Zend 命名空间 - 检查会话是否存在

    All 我正在使用 Zend Framework 和 Zend Session 为我的应用程序进行全局会话管理 我计划在注销时清除所有会话 因此使用以下代码 if this gt sessionExists this gt destroy
  • 将 CSV 导入 MySQL

    我已经创建了一个数据库和一个表 我还创建了我需要的所有字段 我创建了 46 个字段 其中一个字段是我的行 ID CSV 不包含 ID 字段 也不包含列的标题 我对这一切都很陌生 但一直在努力解决这个问题 我在这里并不是懒惰地寻求答案 而是在
  • 如何使用样式表更改 QSlider 手柄宽度

    我有一个应用程序 我不想在 10 触摸屏上运行 我正在尝试使 QSlider 手柄更大 以便更容易移动 我在样式表中找到了大量更改手柄宽度的示例 但是当我运行代码时 这些更改没有反映出来 我正在使用 PyQt5 Designer 这里是滑块