weixin_44532019 2023-01-10 10:31 采纳率: 68.2%
浏览 59
已结题

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_()


  • 写回答

4条回答 默认 最新

  • 阿_旭 2023-01-10 10:44
    关注

    是要下图这种效果吗?

    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_()
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 1月18日
  • 已采纳回答 1月10日
  • 赞助了问题酬金15元 1月10日
  • 创建了问题 1月10日

悬赏问题

  • ¥15 C++/QT设置函数调用条件(多个功能调用同一,且各自调用条件不同)
  • ¥15 UE5样条线生成的网格UV问题
  • ¥15 如何用最短的时间大致看懂springboot+vue的项目
  • ¥15 (有偿)懂数值分析和含时变参数微分方程的来
  • ¥15 abaqus随机生成二维颗粒
  • ¥15 安装ansys许可证管理器时出现了这个问题,如何解决?
  • ¥100 高价求算法,利用智能手机传感器计算车辆的三轴g值
  • ¥15 Blazor server 数据库操作异常,如何解决?(语言-c#)
  • ¥15 uni-app开发APP运行到浏览器访问接口跨域
  • ¥100 mfc消息自创建控件