博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PyQt5之停靠控件和滚动条控件
阅读量:3960 次
发布时间:2019-05-24

本文共 3075 字,大约阅读时间需要 10 分钟。

PyQt5之停靠控件和滚动条控件

一、QDockWidget停靠控件

QDockWidget是一个可以停靠在QMainWidget内的窗口控件,它可以保持在浮动状态或者指定位置作为子窗口添加到主窗口中,QMainWidget类的主窗口对象保留有一个用于停靠窗口的区域。

QDockWidget类中的常用方法

方法 描述
setWidget() 在Dock窗口区域设置QWidget
setFloating() 设置Dock窗口是否可以浮动,如果设置为True,则表示可以浮动
setAllowedAreas() 设置窗口可以停靠的区域:LeftDockWidgetArea(左边停靠区域)、RightDockWidgetArea(右边停靠区域)、TopDockWidgetArea(顶部停靠区域)、BottomDockWidgetArea(底部停靠区域)、NoDockWidgetArea(不显示Widget)
setFeatures() 设置停靠窗口的功能属性:DockWidgetClosable(可关闭)、DockWidgetMovable(可移动)、DockWidgetFloatable(可漂浮)、DockWidgetVerticalTitleBar(在左边显示垂直的标签栏)、AllDockWidgetFeatures(具有前三种属性的所有功能)、NoDockWidgetFeatures(无法关闭,不能移动,不能漂浮)

QDockWidget的使用

import sysfrom PyQt5 import QtCorefrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *class Demo(QMainWindow):    def __init__(self):        super().__init__()        self.setGeometry(100, 50, 500, 400)        self.setWindowTitle('QDockWidget的使用')        layout = QHBoxLayout()        bar = self.menuBar()        file = bar.addMenu('File')        file.addAction("New")        file.addAction("Save")        file.addAction("Quit")        #创建停靠窗口        self.items = QDockWidget('Dockable',self)        self.listwidget = QListWidget()        self.listwidget.addItem("item1")        self.listwidget.addItem("item2")        self.listwidget.addItem("item3")        self.items.setWidget(self.listwidget)        self.items.setFloating(False)        self.setCentralWidget(QTextEdit())        self.addDockWidget(Qt.RightDockWidgetArea,self.items)        self.setLayout(layout)if __name__ == "__main__":    app = QApplication(sys.argv)    form = Demo()    form.show()    sys.exit(app.exec_())

运行效果如下:

在这里插入图片描述

二、QScrollBar滚动条控件

QScrollBar提供了水平的或垂直的滚动条,可以扩大当前窗口的有效装载面积。

QScrollBar类中的常用信号

信号 含义
valueChanged 当滑动条的值改变时发射此信号
sliderMoved 当用户拖动滑块时发射此信号

QScrollBar的使用

import sysfrom PyQt5 import QtCorefrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *class Demo(QWidget):    def __init__(self):        super().__init__()        self.setGeometry(100, 50, 500, 400)        self.setWindowTitle('QScrollBar的使用')        layout = QHBoxLayout()        self.l1 = QLabel('拖动滑块改变颜色')        self.l1.setFont(QFont('Arial',16))        layout.addWidget(self.l1)        self.s1 = QScrollBar()        self.s1.setMaximum(255)        self.s1.sliderMoved.connect(self.sliderval)        self.s2 = QScrollBar()        self.s2.setMaximum(255)        self.s2.sliderMoved.connect(self.sliderval)        self.s3 = QScrollBar()        self.s3.setMaximum(255)        self.s3.sliderMoved.connect(self.sliderval)        layout.addWidget(self.s1)        layout.addWidget(self.s2)        layout.addWidget(self.s3)        self.setLayout(layout)    def sliderval(self):        print(self.s1.value(),self.s2.value(),self.s3.value())        palette = QPalette()        c = QColor(self.s1.value(),self.s2.value(),self.s3.value(),255)        palette.setColor(QPalette.Foreground,c)        self.l1.setPalette(palette)        if __name__ == "__main__":    app = QApplication(sys.argv)    form = Demo()    form.show()    sys.exit(app.exec_())

运行效果如下:

在这里插入图片描述

转载地址:http://ntozi.baihongyu.com/

你可能感兴趣的文章
对div排序
查看>>
读写blob类型字段
查看>>
js类型转换
查看>>
spring实例化Bean理解
查看>>
Mac下配置JAVA_HOME
查看>>
fedora 安装mp3播放器插件
查看>>
赏心悦目的宏代码
查看>>
理解套接字recv(),send()
查看>>
发一个C++写的跨平台的BlockingQueue
查看>>
Linux TCP/IP协议栈剖析【体系结构篇】
查看>>
游戏开发中预防内存泄露的一些措施
查看>>
以前的文章全部移除了。
查看>>
几首歌
查看>>
蝴蝶泉边
查看>>
编码转换
查看>>
freerice
查看>>
Does your mother know
查看>>
《写出质量好软件的75条体会》暨答案ZT [转自monkyy的blog]
查看>>
关于详细设计
查看>>
POJ2838,Sliding Window(单调队列)
查看>>