dtcms 源码 Gitlab 自承式光缆 acm datatable io vue网页 后台管理模板下载 广告投放系统源码 mysql小数用什么类型 基于bootstrap的框架 html好看的字体 python开发教程 python输出中文 python重复执行 javaqueue java的接口 java数据 java的包 java获取当前月 java编译环境 java8函数式接口 java数组添加元素 java基础代码 学java基础 java接口调用 linuxsleep linux服务器登录 ntscan 三维看图软件 mac画图软件 unity3d下载 系统维护工具 苹果手机总是自动重启 苹果x银色 1667 脚本学习 苹果手机不弹出信任 kmplayer绿色版 黑道圣徒4去马赛克
当前位置: 首页 > 学习教程  > python

pyqt 滚动条

2021/2/6 22:23:46 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

QScrollBar简介 QScrollbar滚动条控件和QSlider的行为相似,它们都继承自QAbstractSlider, 都是提供在一定范围内数值变化的交互控件,但它们的外观表现不一样,QSlider用于控制时间变化,比如播放器,有一定时长&#xff…

 

QScrollBar简介

QScrollbar滚动条控件和QSlider的行为相似,它们都继承自QAbstractSlider, 都是提供在一定范围内数值变化的交互控件,但它们的外观表现不一样,QSlider用于控制时间变化,比如播放器,有一定时长,用QSlider就非常贴切。QScrollbar常用于空间位置的变化,比如,一幅大的图像,在屏幕上只能显示其中一部分,就可以使用滚动条来控制。

和QSlider类似,QScrollbar提供垂直方向和水平方向的滚动条。

QScrollbar常用方法:

  • setMinimum(): 设置滚动条的最小值
  • setMaximum(): 设置滚动条的最大值
  • setSingleStep(): 设置滚动条的步长
  • setValue(): 设置滚动条的值
  • value(): 获得滚动条控件的值

QScrollbar中的常用信号:

  • valueChanged: 当滑块的值发生改变时发射此信号,此信号是最常用的
  • sliderPressed: 当用户按下滑块时发射此信号
  • sliderMoved: 当用户拖动滑块时发射此信号
  • sliderReleased: 当用户释放滑块时发射此信号

QScrollbar类继承关系:

c1b7e07c9d36c71a243e7f7478e44b26.png

测试QScrollbar

创建文件qscroolbar.py, 代码如下:



import sys
import os
from PyQt5 import QtCore, QtGui,QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import (QApplication, QWidget, QLabel, QScrollBar,QSpacerItem, QSizePolicy, QVBoxLayout, QHBoxLayout, QFormLayout)
class DemoScrollBar(QWidget):
    def __init__(self, parent=None):
        super(DemoScrollBar, self).__init__(parent)
        self.setWindowTitle("实战PyQt5: QScrollBar Demo!")
        self.resize(440, 300)
        self.disp_w = 400
        self.disp_h = 280
        self.pos_horz = 0
        self.pos_vert = 0
        self.pix = QPixmap("d:/1.jpg")
        # self.pix = QPixmap(os.path.dirname(__file__) + "d:/1.jpg")
        img_w = self.pix.width()
        img_h = self.pix.height()
        self.disp_img = QLabel(self)
        self.disp_img.setFixedSize(self.disp_w, self.disp_h)
        vBar = QScrollBar(Qt.Vertical, self)
        vBar.setRange(0, img_h - self.disp_h)
        vBar.valueChanged.connect(self.vertPosChanged)
        hBar = QScrollBar(Qt.Horizontal, self)
        hBar.setRange(0, img_w - self.disp_w)
        hBar.setFixedWidth(self.disp_w)
        hBar.valueChanged.connect(self.horzPosChanged)
        fLayout = QFormLayout(self)
        fLayout.setWidget(0, QFormLayout.LabelRole, self.disp_img)
        fLayout.setWidget(0, QFormLayout.FieldRole, vBar)
        fLayout.setWidget(1, QFormLayout.LabelRole, hBar)                #初始化显示区域
        self.disp_img.setPixmap(self.pix.copy(self.pos_horz, self.pos_vert, self.disp_w, self.disp_h))
        self.setLayout(fLayout)
    def horzPosChanged(self, pos):
        print(pos)
        self.pos_horz = pos
        self.disp_img.setPixmap(self.pix.copy(self.pos_horz,  self.pos_vert, self.disp_w, self.disp_h))
    def vertPosChanged(self, pos):
        print(pos)
        self.pos_vert = pos
        self.disp_img.setPixmap(self.pix.copy(self.pos_horz,  self.pos_vert, self.disp_w, self.disp_h))
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = DemoScrollBar()
    window.show()
    sys.exit(app.exec())

 


本文链接: http://www.dtmao.cc/news_show_2000064.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?