Python pyqt5

img

img


```python

import sys
from PyQt5.QtWidgets import *

class QTabWidgetDemo(QTabWidget):
    def __init__(self):
        super(QTabWidgetDemo, self).__init__()

        self.resize(400, 150)
        #设置窗口标题
        self.setWindowTitle("QTabWidgetDemo")

        #创建3个选项卡小控件窗口
        self.tab1 = QWidget()
        self.tab2 = QWidget()
        self.tab3 = QWidget()

        #将三个选项卡添加到顶层窗口中
        self.addTab(self.tab1, "Tab 1")
        self.addTab(self.tab2, "Tab 2")
        self.addTab(self.tab3, "Tab 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)

    def tab2UI(self):
        #zhu表单布局,次水平布局
        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 = QTabWidgetDemo()
    main.show()
    sys.exit(app.exec_())





```python
import sys #导系统
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *


from pymssql import *  ###测试时使用 写好后端后 改成  网络通讯



class Home(QWidget):
    def __init__(self):  # 初始化函数
        super(Home,self).__init__()  # 继承QWidget
        self.QTabWidget = QTabWidget()
        self.initUi()  # 直接调用initUi

    def initUi(self):
        self.setWindowTitle('学习')#设置标题
        self.setWindowIcon(QIcon(''))#设置主页面的looog
        #获取显示器分辨率来一边设置 之后的窗口设定
        screen = QDesktopWidget().screenGeometry()
        # print(screen.width(),screen.height()) #打印粉分辨率大小
        self.resize(int(screen.width()/2),int(screen.height()/2) )#设置窗口大小
##——————————————————————————————————————————————————————————>>>>> 主要页面分割
        self.main_Form() #初始主 窗体
        self.menu_bar()  #初始主 菜单栏

        spliter1 = QSplitter(Qt.Horizontal)  # 创建分割
        spliter1.addWidget(self.topleft)  # 装入第一个状体
        spliter1.addWidget(self.textedit)  # 装入第二个窗体

        spliter1.setSizes([100, 600])  # 设置窗体比例  1:6

        h_layout = QHBoxLayout(self)  # 创建一个布局 水平布局
        h_layout.addWidget(spliter1)  # 将分割装入横向布局
        self.setLayout(h_layout)  # 这句没看懂
    def main_Form(self):

        self.textedit = QFrame()  # 创建第二个窗体 调转状体 主窗体
        self.textedit.setFrameShape(QFrame.StyledPanel)  # 第二个窗体显示横线 调转状体 主窗体



    def menu_bar(self): ## 菜单栏
        self.topleft = QFrame()  # 创建一个窗体  菜单栏窗体   QFrame样式可以更改好多种
        self.topleft.setFrameShape(QFrame.StyledPanel)  # 窗体显示横线
        menu_fapiao = QPushButton('页面', self.topleft)  ###创建一个按钮放在 菜单栏窗体中
        h_layout = QVBoxLayout(self.topleft)  #创建垂直布局
        h_layout.addWidget(menu_fapiao)  ##将按钮放在垂直布局中
        h_layout.addStretch()  #弹簧 顶到上面




if __name__ == '__main__':
    app = QApplication(sys.argv)
    ui = Home()
    ui.show()  # 显示主出口
    app.exec_()


是要下图这种效果吗?

img

# coding:utf-8

import sys
from PyQt5.QtWidgets import *
import sys #导系统
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *


class QTabWidgetDemo(QTabWidget):
    def __init__(self):
        super(QTabWidgetDemo, self).__init__()

        self.resize(400, 150)
        #设置窗口标题
        self.setWindowTitle("QTabWidgetDemo")

        #创建3个选项卡小控件窗口
        self.tab1 = QWidget()
        self.tab2 = QWidget()
        self.tab3 = QWidget()

        #将三个选项卡添加到顶层窗口中
        self.addTab(self.tab1, "Tab 1")
        self.addTab(self.tab2, "Tab 2")
        self.addTab(self.tab3, "Tab 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)

    def tab2UI(self):
        #zhu表单布局,次水平布局
        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)

class Home(QWidget):
    def __init__(self):  # 初始化函数
        super(Home,self).__init__()  # 继承QWidget
        self.QTabWidget = QTabWidget()
        self.initUi()  # 直接调用initUi

    def initUi(self):
        self.setWindowTitle('学习')#设置标题
        self.setWindowIcon(QIcon(''))#设置主页面的looog
        #获取显示器分辨率来一边设置 之后的窗口设定
        screen = QDesktopWidget().screenGeometry()
        # print(screen.width(),screen.height()) #打印粉分辨率大小
        self.resize(int(screen.width()/2),int(screen.height()/2) )#设置窗口大小
##——————————————————————————————————————————————————————————>>>>> 主要页面分割
        self.main_Form() #初始主 窗体
        self.menu_bar()  #初始主 菜单栏

        spliter1 = QSplitter(Qt.Horizontal)  # 创建分割
        spliter1.addWidget(self.topleft)  # 装入第一个状体
        self.tab = QTabWidgetDemo()
        spliter1.addWidget(self.tab)
        # spliter1.addWidget(self.textedit)  # 装入第二个窗体

        spliter1.setSizes([100, 600])  # 设置窗体比例  1:6

        h_layout = QHBoxLayout(self)  # 创建一个布局 水平布局
        h_layout.addWidget(spliter1)  # 将分割装入横向布局
        self.setLayout(h_layout)  # 这句没看懂
    def main_Form(self):

        self.textedit = QFrame()  # 创建第二个窗体 调转状体 主窗体
        self.textedit.setFrameShape(QFrame.StyledPanel)  # 第二个窗体显示横线 调转状体 主窗体



    def menu_bar(self): ## 菜单栏
        self.topleft = QFrame()  # 创建一个窗体  菜单栏窗体   QFrame样式可以更改好多种
        self.topleft.setFrameShape(QFrame.StyledPanel)  # 窗体显示横线
        menu_fapiao = QPushButton('页面', self.topleft)  ###创建一个按钮放在 菜单栏窗体中
        h_layout = QVBoxLayout(self.topleft)  #创建垂直布局
        h_layout.addWidget(menu_fapiao)  ##将按钮放在垂直布局中
        h_layout.addStretch()  #弹簧 顶到上面




if __name__ == '__main__':
    app = QApplication(sys.argv)
    ui = Home()
    ui.show()  # 显示主出口
    app.exec_()



想要将这两块代码合并在一起。 在截图1的红框位置 添加 分页

根据要求对代码进行了相应修改:

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *


class QTabWidgetDemo(QTabWidget):
    def __init__(self):
        super(QTabWidgetDemo, self).__init__()

        self.resize(400, 150)
        # 设置窗口标题
        self.setWindowTitle("QTabWidgetDemo")

        # 创建3个选项卡小控件窗口
        self.tab1 = QWidget()
        self.tab2 = QWidget()
        self.tab3 = QWidget()

        # 将三个选项卡添加到顶层窗口中
        self.addTab(self.tab1, "Tab 1")
        self.addTab(self.tab2, "Tab 2")
        self.addTab(self.tab3, "Tab 3")


class Home(QWidget):
    def __init__(self):  # 初始化函数
        super(Home, self).__init__()  # 继承QWidget
        self.QTabWidget = QTabWidget()
        self.initUi()  # 直接调用initUi

    def initUi(self):
        self.setWindowTitle('学习')  # 设置标题
        self.setWindowIcon(QIcon(''))  # 设置主页面的looog
        # 获取显示器分辨率来一边设置 之后的窗口设定
        screen = QDesktopWidget().screenGeometry()
        # print(screen.width(),screen.height()) #打印粉分辨率大小
        self.resize(int(screen.width() / 2), int(screen.height() / 2))  # 设置窗口大小
        self.main_Form()  # 初始主 窗体
        self.menu_bar()  # 初始主 菜单栏

        spliter1 = QSplitter(Qt.Horizontal)  # 创建分割
        spliter1.addWidget(self.topleft)  # 装入第一个状体
        spliter1.addWidget(self.textedit)  # 装入第二个窗体

        spliter1.setSizes([100, 600])  # 设置窗体比例  1:6

        h_layout = QHBoxLayout(self)  # 创建一个布局 水平布局
        h_layout.addWidget(spliter1)  # 将分割装入横向布局
        self.setLayout(h_layout)  # 这句没看懂

    def main_Form(self):
        self.textedit = QTabWidgetDemo()  # 创建第二个窗体 调转状体 主窗体

    def menu_bar(self):  ## 菜单栏
        self.topleft = QFrame()  # 创建一个窗体  菜单栏窗体   QFrame样式可以更改好多种
        self.topleft.setFrameShape(QFrame.StyledPanel)  # 窗体显示横线
        menu_fapiao = QPushButton('页面', self.topleft)  ###创建一个按钮放在 菜单栏窗体中
        h_layout = QVBoxLayout(self.topleft)  # 创建垂直布局
        h_layout.addWidget(menu_fapiao)  ##将按钮放在垂直布局中
        h_layout.addStretch()  # 弹簧 顶到上面


if __name__ == '__main__':
    # app = QApplication(sys.argv)
    # main = QTabWidgetDemo()
    # main.show()
    # sys.exit(app.exec_())
    app = QApplication(sys.argv)
    ui = Home()
    ui.show()  # 显示主出口
    app.exec_()


运行结果为:

img