当前位置:首页>python>36.Python实战__滚动区域控件简介2

36.Python实战__滚动区域控件简介2

  • 2026-09-09 19:37:59
36.Python实战__滚动区域控件简介2
    上节聊了聊滚动区域控件QScrollArea(),用来创建一个可滚动的区域,在滚动区域添加一个大的控件,用拖动滚动条来预览全部内容,效果如下:
    我们以前创建类时都是继承自QWidget()这个控件,因为他是所有可视化控件的基类,一般也都是继承自QWidget();
    但是如果你的窗口中所有的内容全都在滚动区域QScrollArea()内时,其实可以直接继承自QScrollArea()这个类了,这样你的主窗口就相当于一个滚动区域,你只需要把你的所有控件通过 setWidget(控件)添加到主窗口中就行了;
需要注意的是,如果你的窗口中既有一般的控件,又有滚动区域控件,这就还需要继承自QWidget(),在QWidget()空白窗口上放置一般的非滚动显示控件 和 滚动显示控件。
    比如上节只是显示一个图片的滚动区域窗口,完全可以继承自QScrollArea()控件。
附代码如下:
一、先导入用到的模块
from PySide6.QtGui import QPixmap  # QPixmap是用来加载图片的一个类,他不是一个控件from PySide6.QtWidgets import QApplication,      QLabel, QScrollArea
二、创建一个类,并继承自QWidget
class Win(QScrollArea):    def __init__(self):            # 初始化父类QScrollArea         super().__init__()                 # 设置窗口的标题                 self.setWindowTitle("图片预览")        
三、在实例方法setup_ui( )中创建控件
def setup_01(self):    # 创建一个标签来显示图片        label = QLabel()        # 加载一个图片对象        pixmap = QPixmap("./1.jpg")        label.setPixmap(pixmap)        # 把标签添加到滚动区域        # 这时候滚动区域就是self了    self.setWidget(label) 
四、最后是运行主程序,固定的写法
if __name__ == "__main__":        import sys        # 创建一个app实例    app = QApplication(sys.argv)        # 实例化上面的类 Win()    win = Win()    # 显示上面实例化后的窗口对象        win.show()    # 运行程序        sys.exit(app.exec())
上面程序运行效果如下:
    效果与上面继承QWidget()的效果唯一的区别是,图片周边没有了白色的边距,QWidget()默认四周是有一定白边的;QScrollArea( )直接贴着窗口显示,没有白边距了。这个边距可以通过设置QLabel()来设置的。
    通过上面的例子,我们发现,创建类时,继承自那个父类,是可以根据需要来选择的,下节咱们就用直接继承QScrollArea()来做个案例。
    大家有空了一定要亲手敲一敲代码来加深自己的理解。

最新文章

随机文章