PyQt/多页面/README.md
2018-10-31 19:42:00 +08:00

1.6 KiB
Raw Blame History

多页面

1、QScrollArea

1、仿QQ设置面板

  1. 左侧为QListWidget,右侧使用QScrollArea设置QVBoxLayout然后依次往里面添加QWidget
  2. 右侧添加QWidget的时候有两种方案
    1. 左侧list根据序号来索引右侧添加widget时给定带序号的变量名如widget_0,widget_1,widget_2之类的这样可以直接根据QListWidget的序号关联起来
    2. 左侧list添加item时给定右侧对应的widget变量值

相关事件:

  1. 绑定左侧QListWidgetitemClicked的到该item的索引
  2. 绑定右侧滚动条的valueChanged事件得到pos

注意:当itemClicked时定位滚动条的值时,需要设置一个标志位用来避免valueChanged重复调用item的定位

截图

2、QStackedWidget

1、左侧选项卡

本来使用QTabWidget可以实现多标签页面但是当标签在左侧时会出现文字方向不对的问题可以通过自定义QTabBar来解决也可以采用QListWidget结合QStackedWidget的方式。

  1. 左侧为QListWidget,右侧使用QStackedWidget然后依次往里面添加QWidget
  2. 右侧添加QWidget的时候有两种方案
    1. 左侧list根据序号来索引右侧添加widget时给定带序号的变量名如widget_0,widget_1,widget_2之类的这样可以直接根据QListWidget的序号关联起来
    2. 左侧list添加item时给定右侧对应的widget变量值

截图