如果您有任何疑问,可以在下面询问或输入您要寻找的!
文件目录
一.菜单栏控制QTabWidget
二.局部变量对话框控制QStackedWidget
三.停靠在控制QDockWidget
四.容下多文本文档的对话框
应用器皿控制的目地:使显示屏上面有大量的控制
什么叫菜单栏控制?
实例:
不一样的菜单栏控制相匹配了不一样的不一样的页面,就要也防止了物品过多一个网页页面忘不掉,也就是一个菜单栏相匹配一个对话框。
编码:
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class TabWidget(QTabWidget): #立即一全部显示屏便是一个菜单栏对话框
def __init__(self,parent=None):
super(TabWidget, self).__init__(parent)
self.setWindowTitle('菜单栏控制:QTabWidget')
self.resize(400,200)
#建立用以表明控制的对话框
self.tab1=QWidget()
self.tab2 = QWidget()
self.tab3 = QWidget()
#将对话框和菜单栏关联
self.addTab(self.tab1,'菜单栏1')
self.addTab(self.tab2, '选择项卡2')
self.addTab(self.tab3, '菜单栏3')
self.tab1UI()
self.tab2UI()
self.tab3UI()
def tab1UI(self):
#表格合理布局
layout=QFormLayout()
layout.addRow('名字',QLineEdit())
layout.addRow('详细地址',QLineEdit())
# 将第一个菜单栏对话框重新命名
self.setTabText(0,'联系电话')
self.tab1.setLayout(layout)#别忘记tab1便是一个对话框
def tab2UI(self):
layout=QFormLayout()
sex=QHBoxLayout()#水准合理布局,横着排序
#单选框
sex.addWidget(QRadioButton('男'))
sex.addWidget(QRadioButton('女'))
layout.addRow(QLabel('性別'),sex)
layout.addRow('生日',QLineEdit())
self.setTabText(1,'本人详细资料')
self.tab2.setLayout(layout)
def tab3UI(self):
layout=QHBoxLayout()
layout.addWidget(QLabel('学科'))
#勾选框
layout.addWidget(QCheckBox('物理学'))
layout.addWidget(QCheckBox('高数'))
self.setTabText(2,'文化教育水平')
self.tab3.setLayout(layout)
if __name__=='__main__':
app=QApplication(sys.argv)
main=TabWidget()
main.show()
sys.exit(app.exec_())
运作結果:
根据数据库索引来转换网页页面
编码:
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class StackedExample(QWidget): #立即一全部显示屏便是一个菜单栏对话框
def __init__(self,parent=None):
super(StackedExample, self).__init__(parent)
self.setWindowTitle('局部变量对话框控制:QStackedWidget')
#self.resize(400,200)
self.setGeometry(800,450,10,10)
#目录控制
self.list=QListWidget()
self.list.insertItem(0,'联系电话')
self.list.insertItem(1,'私人信息')
self.list.insertItem(2,'文化教育水平')
self.stack1=QWidget()
self.stack2 = QWidget()
self.stack3 = QWidget()
self.tab1UI()
self.tab2UI()
self.tab3UI()
#局部变量对话框控制目标
self.stack=QStackedWidget()
self.stack.addWidget(self.stack1)
self.stack.addWidget(self.stack2)
self.stack.addWidget(self.stack3)
self.list.currentRowChanged.connect(self.display)
hbox=QHBoxLayout()
hbox.addWidget(self.list)
hbox.addWidget(self.stack)
self.setLayout(hbox)
def tab1UI(self):
#表格合理布局
layout=QFormLayout()
layout.addRow('名字',QLineEdit())
layout.addRow('详细地址',QLineEdit())
self.stack1.setLayout(layout)#别忘记tab1便是一个对话框
def tab2UI(self):
layout=QFormLayout()
sex=QHBoxLayout()#水准合理布局,横着排序
#单选框
sex.addWidget(QRadioButton('男'))
sex.addWidget(QRadioButton('女'))
layout.addRow(QLabel('性別'),sex)
layout.addRow('生日',QLineEdit())
self.stack2.setLayout(layout)
def tab3UI(self):
layout=QHBoxLayout()
layout.addWidget(QLabel('学科'))
#勾选框
layout.addWidget(QCheckBox('物理学'))
layout.addWidget(QCheckBox('高数'))
self.stack3.setLayout(layout)
def display(self,index):
#根据数据库索引来转换网页页面
self.stack.setCurrentIndex(index)
if __name__=='__main__':
app=QApplication(sys.argv)
main=StackedExample()
main.show()
sys.exit(app.exec_())
运作結果:
编码:
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class DockDemo(QMainWindow): #立即一全部显示屏便是一个菜单栏对话框
def __init__(self,parent=None):
super(DockDemo, self).__init__(parent)
self.setWindowTitle('停靠在控制:QDockWidget')
self.setGeometry(800,450,500,500)#x,y,w,h
#self.resize(400, 200)
layout=QHBoxLayout()
#停靠在控制目标
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.setCentralWidget(QLineEdit('单行键入'))
#设定一开始便是飘浮情况
self.items.setFloating(True)
#在对话框上设定停靠在控制,且飘浮在右边
self.addDockWidget(Qt.RightDockWidgetArea,self.items)
if __name__=='__main__':
app=QApplication(sys.argv)
main=DockDemo()
main.show()
sys.exit(app.exec_())
运作結果:
如同c语言编译器里的一些两侧的对话框一样,可随便拖拽,变小变大,替换部位等,自身试试吧!
等同于对话框的器皿,里边能够有很多子对话框,但子对话框只有在这里里边挪动。
必须的类:
容下多文本文档:QMdiArea
子对话框: QMdiSubWindow
编码:
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class MultiWindows(QMainWindow): #立即一全部显示屏便是一个菜单栏对话框
count=0 #纪录当今有多少个菜单栏
def __init__(self,parent=None):
super(MultiWindows, self).__init__(parent)
self.setWindowTitle('容下多文本文档的对话框')
self.setGeometry(800,450,500,400)#x,y,w,h
#容下多文本文档器皿目标
self.mdi=QMdiArea()
bar=self.menuBar()
file=bar.addMenu('File')
file.addAction('New')
file.addAction('cascade') #重合
file.addAction('Tiled') #铺平
file.triggered.connect(self.windowAction)
self.setCentralWidget(self.mdi)
def windowAction(self,q): #q是当今的点击菜单栏,根据按键名来开展不一样的实际操作
if q.text()=='New':
self.count=self.count+1
#子对话框目标
sub=QMdiSubWindow()
sub.setWidget(QTextEdit())
sub.setWindowTitle('子对话框'+str(self.count))
self.mdi.addSubWindow(sub)
sub.show()
#下边2个是对mdi中现有的对话框排列开展实际操作,而不是转化成对话框
elif q.text()=='cascade':
self.mdi.cascadeSubWindows()
elif q.text()=='Tiled':
self.mdi.tileSubWindows()
if __name__=='__main__':
app=QApplication(sys.argv)
main=MultiWindows()
main.show()
sys.exit(app.exec_())
运作結果:
先随机生成(New)四个对话框,再试一下别的2个排版设计的实际效果 。
重合
铺平
我是这篇文章的创作本人 请您把文章删了 ...
评论于 华为eNSP最稳定的装法