成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > Pyqt5將多個類組合在一個界面顯示的完整示例

Pyqt5將多個類組合在一個界面顯示的完整示例

熱門標簽:銀川電話機器人電話 萊蕪電信外呼系統(tǒng) 企業(yè)微信地圖標注 B52系統(tǒng)電梯外呼顯示E7 鶴壁手機自動外呼系統(tǒng)違法嗎 沈陽防封電銷電話卡 地圖標注多個 怎么辦理400客服電話 高德地圖標注收入咋樣

背景:

當你做復雜程序的時候,一個python文件不可能寫完所有UI,所以我們需要分塊組合,在不同的類寫多個UI文件及其相應的邏輯,然后再組合在一個UI界面中。

示例如下:

1、待組合的原始主界面,主要使用控件是QTabWidget ,將不同類中的布局顯示到相應tab中

# -*- coding: utf-8 -*-
 
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication
 
class Ui_MainWindow(QtWidgets.QWidget):
    def __init__(self):
        super(Ui_MainWindow,self).__init__()
        self.setupUi()
 
    def setupUi(self):
        self.allLayoutV = QtWidgets.QVBoxLayout()
        self.allLayoutV.setContentsMargins(0, 0, 0, 0)
        self.allLayoutV.setObjectName("allLayoutV")
        self.tabWidget = QtWidgets.QTabWidget()
        self.tabWidget.setObjectName("tabWidget")
        self.tab = QtWidgets.QWidget()  
        self.tab.setObjectName("tab")
        self.tabWidget.addTab(self.tab, "")
        self.tab_2 = QtWidgets.QWidget()
        self.tab_2.setObjectName("tab_2")
        self.tabWidget.addTab(self.tab_2, "")
        self.tab_3 = QtWidgets.QWidget()
        self.tab_3.setObjectName("tab_3")
        self.tabWidget.addTab(self.tab_3, "")
        self.allLayoutV.addWidget(self.tabWidget)
 
        self.retranslateUi()
        self.tabWidget.setCurrentIndex(0)
        self.setLayout(self.allLayoutV)
        self.show()
 
    def retranslateUi(self):
        _translate = QtCore.QCoreApplication.translate
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Tab 1"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Tab 2"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "Tab 3"))
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Ui_MainWindow()
    app.exit(app.exec_())

分界面1

class Test(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(Test, self).__init__(parent)
        # for testing
        lay = QtWidgets.QVBoxLayout(self)
        lay.addWidget(QtWidgets.QPushButton("Test"))

分界面2

class Train_Haar(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(Train_Haar, self).__init__(parent)
        # for testing
        lay = QtWidgets.QVBoxLayout(self)
        lay.addWidget(QtWidgets.QPushButton("Train_Haar"))

分界面3

class Train_HOG(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(Train_HOG, self).__init__(parent)
        # for testing
        lay = QtWidgets.QVBoxLayout(self)
        lay.addWidget(QtWidgets.QPushButton("Train_HOG"))

組合類最終代碼

# -*- coding: utf-8 -*-
 
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication
# 界面1
class Test(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(Test, self).__init__(parent)
        # for testing
        lay = QtWidgets.QVBoxLayout(self)
        lay.addWidget(QtWidgets.QPushButton("Test"))
 
# 界面2
class Train_Haar(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(Train_Haar, self).__init__(parent)
        # for testing
        lay = QtWidgets.QVBoxLayout(self)
        lay.addWidget(QtWidgets.QPushButton("Train_Haar"))
 
# 界面3
class Train_HOG(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(Train_HOG, self).__init__(parent)
        # for testing
        lay = QtWidgets.QVBoxLayout(self)
        lay.addWidget(QtWidgets.QPushButton("Train_HOG"))
 
class Ui_MainWindow(QtWidgets.QWidget):
    def __init__(self):
        super(Ui_MainWindow,self).__init__()
        self.setupUi()
 
    def setupUi(self):
        self.allLayoutV = QtWidgets.QVBoxLayout()
        self.allLayoutV.setContentsMargins(0, 0, 0, 0)
        self.allLayoutV.setObjectName("allLayoutV")
        self.tabWidget = QtWidgets.QTabWidget()
        self.tabWidget.setObjectName("tabWidget")
        
        # tab1 示例一
        self.tab = QtWidgets.QWidget()
        self.tab.setObjectName("tab")
        # 創(chuàng)建Test類對象
        test = Test()
        # 創(chuàng)建一個臨時布局,用于存放從Test中獲取的布局及其邏輯
        lay = QtWidgets.QGridLayout()
        # 獲取Test類中的布局及其邏輯
        ''' 注意這里一定要用addWeidget方法,如果直接賦值布局的話self.tab.setLayout(test.layout()) 只能得到Test中的布局
            但在Test中寫的控件邏輯是不會被調用的,因為直接賦值你只獲取的是布局
        '''
        lay.addWidget(test)
        # 將臨時布局設定到tab上
        self.tab.setLayout(lay)
        self.tabWidget.addTab(self.tab, "")
 
        # tab2 示例二
        self.tab_2 = QtWidgets.QWidget()
        self.tab_2.setObjectName("tab_2")
        train_Haar = Train_Haar()
        lay = QtWidgets.QGridLayout()
        lay.addWidget(train_Haar)
        self.tab_2.setLayout(lay)
        self.tabWidget.addTab(self.tab_2, "")
        
        # tab3 示例三
        self.tab_3 = QtWidgets.QWidget()
        self.tab_3.setObjectName("tab_3")
        train_Hog = Train_HOG()
        lay = QtWidgets.QGridLayout()
        lay.addWidget(train_Hog)
        self.tab_3.setLayout(lay)
        self.tabWidget.addTab(self.tab_3, "")
        self.allLayoutV.addWidget(self.tabWidget)
 
        self.retranslateUi()
        self.tabWidget.setCurrentIndex(0)
        self.setLayout(self.allLayoutV)
        self.show()
 
    def retranslateUi(self):
        _translate = QtCore.QCoreApplication.translate
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Tab 1"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Tab 2"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "Tab 3"))
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Ui_MainWindow()
    app.exit(app.exec_())

最終效果:

 總結:

這里我用QTabWidget,其實可以使用任何布局,關鍵代碼在于addWidget,所以你可以用QGridLayout等其他布局容器都行。

  # tab1
        self.tab = QtWidgets.QWidget()
        self.tab.setObjectName("tab")
        # 創(chuàng)建Test類對象
        test = Test()
        # 創(chuàng)建一個臨時布局,用于存放從Test中獲取的布局及其邏輯
        lay = QtWidgets.QGridLayout()
        # 獲取Test類中的布局及其邏輯
        ''' 注意這里一定要用addWeidget方法,如果直接賦值布局的話self.tab.setLayout(test.layout()) 只能得到Test中的布局
            但在Test中寫的控件邏輯是不會被調用的,因為直接賦值你只獲取的是布局
        '''
        lay.addWidget(test)
        # 將臨時布局設定到tab上
        self.tab.setLayout(lay)

參考:python - Compose a PyQt5 UI from multiple classes - Stack Overflow

到此這篇關于Pyqt5將多個類組合在一個界面顯示的文章就介紹到這了,更多相關Pyqt5多個類組合在界面顯示內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:葫蘆島 三亞 呼倫貝爾 呼倫貝爾 銀川 安慶 湘西 烏魯木齊

巨人網絡通訊聲明:本文標題《Pyqt5將多個類組合在一個界面顯示的完整示例》,本文關鍵詞  Pyqt5,將,多個,類組,合在,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Pyqt5將多個類組合在一個界面顯示的完整示例》相關的同類信息!
  • 本頁收集關于Pyqt5將多個類組合在一個界面顯示的完整示例的相關信息資訊供網民參考!
  • 推薦文章
    欧美一区二区人人喊爽| 五月婷婷六月香| 亚洲人成电影在线观看网| 国内精品视频666| 国产日韩欧美视频在线| 国产综合内射日韩久| 2023欧美最顶级a∨艳星| 国产黄色一级大片| 日韩高清在线观看一区二区| 国产激情91久久精品导航| 成人综合婷婷国产精品久久免费| www污污网站在线看| 欧美色图888| 色妞久久福利网| 成人教育av在线| 91caoporm在线视频| 主播大秀视频在线观看一区二区| 国产成人一区二区精品非洲| 欧美xxx网站| 中文字幕乱在线伦视频中文字幕乱码在线| 成品人视频ww入口| 在线视频毛片| 日韩一卡二卡三卡国产欧美| 久久精品这里热有精品| 国产东北露脸精品视频| 在线播放 亚洲| 国产成人va亚洲电影| 欧美三级电影一区二区三区| 九九热免费在线视频| 亚洲免费av在线| 亚洲经典视频在线观看| 亚洲三级观看| 99精品欧美一区二区三区小说| 中文字幕理伦片免费看| 色噜噜噜噜噜噜| xxxxx69·hd| 一区二区三区动漫| 黄色电影免费在线观看| 两个人看的免费完整在线观看| 日本精品免费在线观看| 伊人色**天天综合婷婷| 亚洲综合第一页| 国内外成人免费在线视频| 亚洲一区激情| 成年网站免费观看| 二吊插入一穴一区二区| 国产成人涩涩涩视频在线观看| 欧美在线影院在线视频| 色先锋av资源中文字幕| 亚洲人成在线观看| ww亚洲ww在线观看国产| 亚洲黄一区二区三区| 亚洲三级在线观看| 亚洲国产精品嫩草影院久久av| 女生裸体视频网站免费观看| 国产乱人伦偷精品视频免下载| 国产精品麻豆va在线播放| 久久久综合香蕉尹人综合网| 欧美精品视频www在线观看| 免费日韩成人| 久久久久久久久久久久久久久久久久av| 亚洲欧美乱综合图片区小说区| 国产成人在线视频播放| 国产强伦人妻毛片| 亚洲自拍偷拍二区| 亚洲国产精品无码久久久久高潮| 91精品久久久久久久久99蜜臂| 久久久久99精品久久久久| 日本精品一区二区三区不卡无字幕| 黄色一级片av| 欧美13~18sex性hd| 国产一二区在线| a天堂在线视频| 一区二区三区资源| 一本色道久久88亚洲精品综合| av中文一区| 中文字幕一区二区三区色视频| 黄视频在线免费看| 97精品国产一区二区三区| 久久er热在这里只有精品66| 黄色资源网久久资源365| 搞av.com| 羞羞电影在线观看www| 日韩美女福利视频| xxxx69视频| 国产a级片免费观看| 亚洲国产精品欧美久久| 久久久久麻豆v国产精华液好用吗| 欧美一级午夜免费电影| 欧美丝袜一区二区| 性欧美xxxx| 精品人妻aV中文字幕乱码色欲| 国产日韩一区二区三免费高清| 久久久久久久97| 日韩亚洲欧美一区二区三区| 国产亚洲一区二区在线观看| 中文字幕在线观看不卡视频| 在线视频色在线| 国产精品一区二区不卡视频| 怡红院在线播放| 99热这里只有精品首页| 成人啪啪免费看| 99欧美视频| 久久精品99久久| 红桃av永久久久| 亚洲视频欧洲视频| 在线成人黄色| 午夜亚洲福利老司机| 中国成人一区| 国产精品视频h| 成年在线观看免费人视频| 日韩精品中文字幕在线观看| 天堂在线免费视频| 中文字幕亚洲精品| 亚洲无吗一区二区三区| 中文字幕在线观看一区二区| 老少交欧美另类| 亚洲国产另类久久精品| 日本色护士高潮视频在线观看| 在线观看福利一区| h精品动漫在线观看| 国产精品免费一区二区三区| 日韩高清不卡一区二区三区| 91精品电影| 国产主播中文字幕| 日韩电影大全免费观看2023年上| 九九热在线视频| av网站网址在线观看| 男男视频在线观看网站| 完整版免费av片| 亚洲欧美制服另类日韩| 一呦二呦三呦国产精品| 日本成人在线不卡| 日韩av网站在线播放| 国产 欧美 自拍| 在线观看视频99| 成人性生交大片免费看中文视频| 色欲av无码一区二区人妻| 亚洲精品蜜桃乱晃| 亚洲美女黄色| 在线观看免费成人| 最新国产热播激情视频| 91网站免费视频| 日韩网站免费观看高清| 大肉大捧一进一出好爽| 国产精品99久久久久久久久久久久| av不卡在线观看| 日本欧美高清| 狠狠干五月天| 亚洲精品丝袜日韩| 午夜视频在线瓜伦| 小鲜肉gaygays免费动漫| 国产主播第一页| 一区二区三区午夜| www.五月婷婷| 超碰97国产在线| 精品爽片免费看久久| 午夜激情一区二区| 在线日韩三级| 欧美一级淫片a免费视频| 性欧美videos粗暴| 国产免费a∨片在线观看不卡| 亚洲午夜电影在线观看| 免费看黄色a级片| 可以免费看毛片的网站| 麻豆蜜桃91| 日韩在线综合网| 久久精品av| 中文字幕欧美人妻精品| 品天堂xxxx高清| 在线观看福利一区| 亚洲欧美日韩一区二区在线| 俺要去色综合狠狠| 国产美女视频一区二区二三区| 欧美性xxxxx极品娇小| 成年人影院在线观看| 神马久久av| 成人情趣片在线观看免费| 日韩不卡免费高清视频| 国产精品久久久久久亚洲伦| 国产色片在线观看| 国产ts一区二区| 色噜噜在线网| 欧美日一区二区三区| 美美哒免费高清在线观看视频一区二区| 成人性视频免费网站| 春日野结衣av| 国产男女猛烈无遮挡在线喷水| 涩涩视频在线观看免费| 欧美xxxx少妇| 欧美疯狂性受xxxxx另类| 3751色影院一区二区三区| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 国产又爽又黄视频| 偷拍与自拍一区| 成人动漫精品一区二区| 欧美成人高清视频| 极品销魂美女一区二区三区| 精品一区二区三区电影| 国产精品亚洲欧美日韩一区在线| 蜜臀av一区二区在线免费观看| 精品人妻一区二区三区日产乱码卜| 免费中文字幕视频| 影音先锋男人资源在线| 欧美最近摘花xxxx摘花| 欧美亚洲免费高清在线观看| 日韩亚洲欧美中文高清在线| 小鲜肉gaygays免费动漫| 国产成人午夜性a一级毛片| 午夜爽爽爽男女免费观看影院| 牛牛电影国产一区二区| 久久久久se| 99久久婷婷国产综合精品电影√| 在线播放免费av| eeuss鲁片一区二区三区| 欧美xxxhd| 福利片一区二区三区| 99热精品在线观看| 这里是久久伊人| 久久精品免视看国产成人| 在线看日韩精品电影| 激情丁香综合五月| 在线影院av| 性欧美视频videos6一9| 俺去啦最新官网| 一区二区三区午夜| 欧美精品v国产精品v日韩精品| 91高清在线| 麻豆精品一区二区av白丝在线| 大又大又粗又硬又爽少妇毛片| 国产精品高清无码| 日本中文字幕视频在线| 国产精品99久久久久久久久久久久| 3751色影院一区二区三区| 激情小视频网站| 国产精品久久亚洲不卡| 欧美剧在线免费观看网站| 欧美喷潮久久久xxxxx| 免费在线观看av的网站| 在线观看国产一级片| 熟女俱乐部一区二区视频在线| 捆绑调教日本一区二区三区| 一本色道亚洲精品aⅴ| 翔田千里一区二区| 欧美日韩综合一区二区三区| 欧美日韩一区在线视频| 高清欧美性猛交xxxx黑人猛| 一区二区三区 欧美| 丝袜在线视频| 先锋成人影音| 亚洲国产三级在线| 亚洲一区二区三区不卡国产欧美| 婷婷激情小说网| 色丁香婷婷综合久久| 亚洲av人无码激艳猛片服务器| 亚洲www啪成人一区二区| 成人h小游戏| 狠狠色丁香久久婷婷综合丁香| 国产欧美高清视频在线| 超碰一区二区三区| 亚洲 欧美 激情 小说 另类| 在线视频资源站| 欧美做受高潮电影o| 麻豆成人免费视频| 在线a人片免费观看视频| 亚洲精品美女视频| 欧美成人精品欧美一级乱| 一区二区三区中文字幕| 黄色小网站在线观看| 91精品一区二区三区综合在线爱| 欧美极品aaaaabbbbb| 天天搞夜夜操| 五月激情久久久| 9国产精品午夜| 亚洲一区二区精品在线| 99精品国产在热久久婷婷| 亚洲精品久久一区二区三区777| 国产91色在线播放| 亚洲欧美在线免费| 一级日本在线| 午夜免费高清视频| 妖精视频一区二区三区免费观看| 国产精品剧情在线亚洲| 女同久久另类99精品国产| 毛片视频网站在线观看| 91香蕉一区二区三区在线观看| 国产精品一二三视频| 欧美综合一区第一页| 国产精品亚洲欧美一级在线| 韩国一级黄色录像| 久久久久无码国产精品一区李宗瑞| 国产精品12345| 国产伦精品一区二区三区高清版禁| 91tv亚洲精品香蕉国产一区7ujn| 日韩国产欧美一区二区| 久久无码专区国产精品s| 波多野结衣片子| 亚洲an天堂an在线观看| 婷婷5月激情5月| 日本在线不卡视频一二三区| 国产人妖ts一区二区| 欧美一区二粉嫩精品国产一线天| 亚洲午夜电影在线观看| 一区二区亚洲欧洲国产日韩| 色黄视频免费看| 青青草国产免费自拍| 亚洲国产欧美91| 色综合天天综合网天天狠天天| 欧美性大战久久久久久久蜜臀| 久久久久久久久久久久久夜| 欧美日韩国产专区| 欧美婷婷精品激情| 成人免费视频观看视频| 日韩精品不卡一区二区| 在线 亚洲欧美在线综合一区| 色av成人天堂桃色av| 国产人妻黑人一区二区三区| 国产麻豆精品一区二区三区v视界| 喷水一区二区三区| 国产精品99久久99久久久| 97精品久久久久中文字幕| 精品这里只有精品| xxxx日本免费| 蜜臀久久99精品久久久酒店新书| 国产欧美日韩精品a在线观看| 国产一区二区三区影院| 激情懂色av一区av二区av| 欧美一区二区黄|