PYQT5学习(12)Qtabwidget 选项卡及其窗口,Qstackedwidget和Qtabwidget的效果类似,以及系统托盘QsystemtrayIcon
参考博文:https://blog.csdn.net/jia666666/article/details/81669092
QTabWidget控件提供一个选项卡和一个页面区域,默认显示第一个选项卡的页面
通过点击各选项卡可以查看相应的界面,如果在一个窗口中显示输入字很多,则可
以对这些字段进行拆分,分别放置在不同界面的选项卡中
流程:1,创建一个QtabWidget
2.为选项卡对话框中的每个页面创建一个QWidget,但不要为它们制定父窗口小部件
3,将子窗口的小部件插入到页面窗口小部件中,使用布局为其定位
4,调用addTab()或insertTab()将页面小部件放入选项卡小部件,为每个选项
卡提供一个带有可选键盘快捷键的合适标签
import sys
from PyQt5.QtWidgets import QWidget,QApplication,QGridLayout,QRadioButton,QVBoxLayout,QTabWidget,QFormLayout,QLabel,QLineEdit class Tab(QTabWidget):
def __init__(self):
super().__init__()
self.tab1=QWidget()
self.tab2=QWidget()
self.tab3=QWidget() self.addTab(self.tab1,'tab1')
self.addTab(self.tab2,'tab2')
self.addTab(self.tab3,'tab3') self.tab1UI()
self.tab2UI() def tab1UI(self):
tab1_lay=QGridLayout()
self.tab1.setLayout(tab1_lay) self.setTabText(0,'信息页')
label=QLabel('姓名:tom')
tab1_lay.addWidget(label,0,0) def tab2UI(self):
tab2_lay=QGridLayout()
self.tab2.setLayout(tab2_lay) self.setTabText(1,'第二页')
label=QLabel('姓名:tom')
tab2_lay.addWidget(label,0,0) class TabWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('demo')
self.setGeometry(300,300,300,200) #表单布局
layout=QFormLayout()
self.setLayout(layout) layout.addRow(QRadioButton('男'))
layout.addRow(QRadioButton('女')) tabwidget=Tab()
layout.addRow(tabwidget) if __name__=='__main__':
app=QApplication(sys.argv)
demo=TabWidget()
demo.show()
sys.exit(app.exec_())
QStackedWidget:参考:https://blog.csdn.net/jia666666/article/details/81669425
QstackedWidget是一个堆栈窗口控件,可以填充一些小控件,但是同一时间只有一个小控件可以显示,QstackedWidget使用QstackedLayout布局,QstackedWidget和QTabWidget类似,可以有效的显示窗口的控件
import sys
from PyQt5.QtWidgets import QWidget,QStackedWidget,QListWidget,QApplication,QGridLayout,QRadioButton,QVBoxLayout,QTabWidget,QFormLayout,QLabel,QLineEdit class Stacked(QStackedWidget):
def __init__(self):
super().__init__() self.area1=QWidget()
self.area2=QWidget()
self.area3=QWidget()
self.addWidget(self.area1)
self.addWidget(self.area2)
self.addWidget(self.area3) self.area1UI()
self.area2UI() def area1UI(self):
layout=QFormLayout()
self.area1.setLayout(layout)
layout.addRow('name',QLineEdit())
def area2UI(self):
layout=QFormLayout()
self.area2.setLayout(layout)
layout.addRow('password',QLineEdit()) class StackedWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('demo')
self.setGeometry(300,300,300,200) #表单布局
layout=QFormLayout()
self.setLayout(layout) self.widget=Stacked()
layout.addRow(self.widget) list=QListWidget()
list.insertItem(0,'first1')
list.insertItem(1,'second')
list.insertItem(2,'three')
layout.addRow(list)
list.currentRowChanged.connect(self.showArea) def showArea(self,i):
self.widget.setCurrentIndex(i) if __name__=='__main__':
app=QApplication(sys.argv)
demo=StackedWidget()
demo.show()
sys.exit(app.exec_())
QDockWidget是一个可以停靠在QMainWindow内的窗口控件,它可以保持在浮动状态或在指定位置作为子窗口附加到主窗口中,QMainWindow类的主窗口对象保留一个用于停靠窗口的区域,这个区域在空间中央周围
import sys
from PyQt5.QtWidgets import QWidget,QTextEdit,QMainWindow,QSystemTrayIcon,QDockWidget,QStackedWidget,QListWidget,QApplication,QGridLayout,QRadioButton,QVBoxLayout,QTabWidget,QFormLayout,QLabel,QLineEdit
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import Qt
class DockWidget(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('demo')
self.setGeometry(300,300,300,200)
#设置系统托盘图标,获取托盘,设置托盘图标
tuopan=QSystemTrayIcon(self)
tuopan.setIcon(QIcon('new.png'))
tuopan.setToolTip('1111')
tuopan.show() dockwidget=QDockWidget('dockdemo',self) list=QListWidget()
list.insertItem(0,'第一')
list.insertItem(1,'第二')
list.insertItem(2,'第三')
list.insertItem(3,'第四') dockwidget.setWidget(list) #设置QdockWidget可浮动
# dockwidget.setFloating(True)
#设置中央控件为Qtextedit
text=QTextEdit()
self.setCentralWidget(text) #设置dockWidget放在右侧
self.addDockWidget(Qt.RightDockWidgetArea,dockwidget) if __name__=='__main__':
app=QApplication(sys.argv) demo=DockWidget()
demo.show()
sys.exit(app.exec_())
PYQT5学习(12)Qtabwidget 选项卡及其窗口,Qstackedwidget和Qtabwidget的效果类似,以及系统托盘QsystemtrayIcon的更多相关文章
- PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件外观展示类属性elideMode、documentMode、tabBarAutoHide、tabShape介绍
QTabWidget的外观展示类属性包括tabPosition.tabShape.elideMode.usesScrollButtons.documentMode.tabBarAutoHide和ico ...
- PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件添加选项卡的addTab和insertTab方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTabWidget添加选项卡的方法可用使用addTab方法和insertTab方法. 1.增加选项 ...
- PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件概述和属性介绍
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 TabWidget选项卡组件是一个带一到多个选项卡栏和对应页面区域的组件,对应类QTabW ...
- PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件的tabBar、count、indexOf方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTabWidget的每个选项卡都有一个对应的页面部件对象,可用通过count方法获取选项卡个数,可 ...
- PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件操作控制类属性movable和tabsClosable介绍
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTabWidget的操作控制类属性包括movable.tabsClosable这两个. 1. mo ...
- PyQt5学习笔记-从主窗体打开一个子窗体
PyQt5学习笔记-从主窗体打开一个子窗体 软件环境: Eric6+Python3.5+PyQt5 试验目标: 1.点击菜单项Open,打开一个子窗体 2.点击按钮Open,打开一个子窗体 主窗体设计 ...
- Pyqt5学习笔记(一)
Python已有的GUI框架: Tkinter(python内嵌的GUI环境,使用TCL实现,易学易用,方便简单创GUI自带无需安装,适用于Unix.Windows和Mac系统组,在Tk8.0的后续版 ...
- JavaScript学习12 JS中定义对象的几种方式
JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...
- Windows程序设计(第五版)学习:第三章 窗口与消息
第三章 窗口与消息 1,windows窗口过程:应用程序所创建的每一个窗口都有一个与之关联的窗口过程,用于处理传递给窗口的消息. 2,窗口依据窗口类来创建.窗口类标识了用于处理传递给窗口的消息 ...
- ThinkPhp学习12
原文:ThinkPhp学习12 二.输出模板内容 (重点) a.display 1.display中没有参数 $this->display(); 2.可以带参数 $this ...
随机推荐
- Multiserver游戏服务器Demo[C++&Lua]
代码参考 代码文件参考下述详解的类图,工程参考第零章工程说明 关键特性 对Socket库进行封装,抹平Socket的Window&Linux的平台差异. C++嵌入lua脚本,增加开发者编码效 ...
- Loguru:优雅的日志管理模块
安装 pip3 install loguru 日志等级 等级 方法 TRACE logger.trace() DEBUG logger.debug() INFO logger.info() SUCES ...
- HTML5新特性之Web Storage
Web Storage是HTML5新增的特性,能够在本地浏览器存储数据,对数据的操作很方便,最大能够存储5M. Web Storage有两种类型: SessionStorage 和 LocalStor ...
- 【QCustomPlot】绘制 x-y 曲线图
说明 使用 QCustomPlot 绘图库辅助开发时整理的学习笔记.同系列文章目录可见 <绘图库 QCustomPlot 学习笔记>目录.本篇介绍如何使用 QCustomPlot 绘制 x ...
- 【python基础】类-初识类
1.面向对象思想 在认识类之前,我们需要理解面向对象思想和面向过程思想. 面向过程思想:要拥有一间房屋,面向过程像是自己来修盖房屋,如果需要经过选址.购买材料.砌墙.装修等步骤,面向过程编程,就相当于 ...
- R语言中的跨平台支持:如何在Windows、MacOS和Linux上使用R语言进行数据分析和可视化
目录 当今数据科学领域,R语言已经成为了数据分析和可视化的流行工具.R语言具有强大的功能和灵活性,使得它可以在各种不同的平台上运行,包括Windows.MacOS和Linux.因此,本文将介绍R语言中 ...
- Python常用基础知识整理
一.Python转义字符 \a :响铃(BEL) \b : 退格(BS) ,将当前位置移到前一列 \f :换页(FF),将当前位置移到下页开头 \n :换行(LF) ,将当前位置移到下一行开头 \r ...
- Mininet教程
mininet的安装 1.前言 1.本次安装环境为ubuntu20.04. 2.mininet 为 github上的最新版,我已经修改镜像地址并克隆到了gitee,只需要从我的gitee仓库克隆即可. ...
- CF1799B Equalize by Divide题解
本蒟蒻学习了jiangly大佬的思想,来发一个题解. 大致题意: 给定一个 \(n\) 个元素的数组 \(a\),每次可以选择 \(a[i]\) 和 \(a[j]\),然后使 \(a[i] = \lc ...
- 1.8 运用C编写ShellCode代码
在笔者前几篇文章中,我们使用汇编语言并通过自定位的方法实现了一个简单的MessageBox弹窗功能,但由于汇编语言过于繁琐在编写效率上不仅要考验开发者的底层功底,还需要写出更多的指令集,这对于普通人来 ...