九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
pyqt多窗口設(shè)計(2步實現(xiàn),嘴對嘴教學(xué),源碼復(fù)制可用)_qt mainwindow中創(chuàng)建子窗口

本文涉及:PyQt5,Qt Designer,PyCharm

 

目錄

先看下完成效果: ???????

步驟1:用Qt Designer創(chuàng)建2個窗體

步驟2:將子窗體和主窗體上的按鈕控件進(jìn)行關(guān)聯(lián)

完整代碼


先看下完成效果: 

        視頻里我只設(shè)計了1個主窗口和1個子窗口,不管你需要多少個子窗口,其創(chuàng)建方法都是一樣的。下面我來介紹一下具體的實現(xiàn)方式。


步驟1:用Qt Designer創(chuàng)建2個窗體

        打開Qt Designer,直接一次性新建2個Main Window窗體,然后在主窗體的中間我放了1個按鈕控件,如下圖所示:

         然后分別保存2個窗體的.ui文件到同1個文件夾中。注意:在保存時,需要分別將鼠標(biāo)焦點定位到要保存的窗體上,單獨為每個窗體進(jìn)行保存;而在將.ui文件轉(zhuǎn)化為.py文件時,也需要分別選中每個.ui文件,單獨進(jìn)行轉(zhuǎn)換,完成后如下圖所示:


步驟2:將子窗體和主窗體上的按鈕控件進(jìn)行關(guān)聯(lián)

        首先看一下untitled2.py文件,在自動轉(zhuǎn)換后的代碼中,默認(rèn)繼承object類,代碼如下:

class Ui_MainWindow(object):

        為了執(zhí)行窗口操作,需要將繼承的object類修改為QMainWindow類,由于QMainWindow類位于PyQt5.QtWidgets模塊中,因此需要進(jìn)行導(dǎo)入,修改后的代碼如下:

  1. from PyQt5.QtWidgets import QMainWindow

  2. class Ui_MainWindow(QMainWindow):

        修改完子窗體的.py文件中的繼承類之后,打開untitled.py主窗體文件,在該文件中,首先定義一個槽函數(shù),用來使用QMainWindow對象的show()方法打開子窗體,代碼如下:

        

  1. def open(self): # 創(chuàng)建1個自定義函數(shù)open打開子窗體
  2. import untitled2 # 導(dǎo)入子窗體
  3. self.second = untitled2.Ui_MainWindow() # 引用子窗體,并命名為second
  4. self.second.resize(736, 467) # 初始化子窗體大小
  5. self.second.setWindowTitle("這是子窗體") # 初始化子窗體的標(biāo)題
  6. self.second.show() # 顯示子窗體

        然后將PushButton按鈕的clicked()信號與自定義的槽函數(shù)open()關(guān)聯(lián),代碼如下:

self.pushButton.clicked.connect(self.open)

        運行untitled.py主窗體,點擊按鈕即可打開子窗體。


完整代碼

        有不清楚的,可以對照下面源碼看一下。

        主窗體源碼(untitled.py):

  1. from PyQt5 import QtCore, QtGui, QtWidgets


  2. class Ui_MainWindow(object):
  3. def setupUi(self, MainWindow):
  4. MainWindow.setObjectName("MainWindow")
  5. MainWindow.resize(750, 500)
  6. self.centralwidget = QtWidgets.QWidget(MainWindow)
  7. self.centralwidget.setObjectName("centralwidget")
  8. self.pushButton = QtWidgets.QPushButton(self.centralwidget)
  9. self.pushButton.setGeometry(QtCore.QRect(190, 140, 291, 81))
  10. self.pushButton.setObjectName("pushButton")

  11. # 將按鈕和顯示第2個窗口的自定義函數(shù)關(guān)聯(lián)
  12. self.pushButton.clicked.connect(self.open)

  13. MainWindow.setCentralWidget(self.centralwidget)
  14. self.statusbar = QtWidgets.QStatusBar(MainWindow)
  15. self.statusbar.setObjectName("statusbar")
  16. MainWindow.setStatusBar(self.statusbar)

  17. self.retranslateUi(MainWindow)
  18. QtCore.QMetaObject.connectSlotsByName(MainWindow)

  19. def retranslateUi(self, MainWindow):
  20. _translate = QtCore.QCoreApplication.translate
  21. MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
  22. self.pushButton.setText(_translate("MainWindow", "打開新窗口"))

  23. def open(self): # 創(chuàng)建1個自定義函數(shù)open打開子窗體
  24. import untitled2 # 導(dǎo)入子窗體
  25. self.second = untitled2.Ui_MainWindow() # 引用子窗體,并命名為second
  26. self.second.resize(736, 467) # 初始化子窗體大小
  27. self.second.setWindowTitle("這是子窗體") # 初始化子窗體的標(biāo)題
  28. self.second.show() # 顯示子窗體

  29. import sys
  30. if __name__ == '__main__':
  31. app = QtWidgets.QApplication(sys.argv)
  32. MainWindow = QtWidgets.QMainWindow()
  33. ui = Ui_MainWindow()
  34. ui.setupUi(MainWindow)
  35. MainWindow.show()
  36. sys.exit(app.exec_())

        子窗體源碼(untitled2.py):

  1. from PyQt5 import QtCore, QtGui, QtWidgets
  2. from PyQt5.QtWidgets import QMainWindow

  3. class Ui_MainWindow(QMainWindow):
  4. def setupUi(self, MainWindow):
  5. MainWindow.setObjectName("MainWindow")
  6. MainWindow.resize(736, 467)
  7. self.centralwidget = QtWidgets.QWidget(MainWindow)
  8. self.centralwidget.setObjectName("centralwidget")
  9. MainWindow.setCentralWidget(self.centralwidget)
  10. self.statusbar = QtWidgets.QStatusBar(MainWindow)
  11. self.statusbar.setObjectName("statusbar")
  12. MainWindow.setStatusBar(self.statusbar)

  13. self.retranslateUi(MainWindow)
  14. QtCore.QMetaObject.connectSlotsByName(MainWindow)

  15. def retranslateUi(self, MainWindow):
  16. _translate = QtCore.QCoreApplication.translate
  17. MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

  18. def __init__(self):
  19. super(Ui_MainWindow, self).__init__()
  20. self.setupUi(self)

天冷手寒,碼文不易,還望各位看官老爺點一下關(guān)注,妾身感激涕零 ~~~

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
PyQt5(3)快速界面設(shè)計
pyqt中使用matplotlib繪制動態(tài)曲線
118.Python——PyQt窗體上顯示監(jiān)控視頻畫面
分享自己使用python+pyserial+pyQT5寫的串口調(diào)試助手
python實現(xiàn)小說閱讀器
PyQt5 轉(zhuǎn)換為 PySide2,在不同類中加載 UI 文件|極客筆記
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服