PyQt5 QWidget 内部再调用QWidget无法显示

齐风 2016-07-21 05:35:22
我想实现一个mainWidget调用一个子项widgetModel,让他在mainWidget显示出来,但是我发现调用以后mainWidget并没有把​widgetModel的内容显示出来,不太清除原因,请各位大神指点一二,下面是源码:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'D:\project\PythonPro\QtUi\CreateUi\mainwidget.ui'
#
# Created by: PyQt5 UI code generator 5.5.1
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWidget(object):
def setupUi(self, MainWidget):
MainWidget.setObjectName("MainWidget")
MainWidget.resize(400, 300)

self.retranslateUi(MainWidget)
QtCore.QMetaObject.connectSlotsByName(MainWidget)

def retranslateUi(self, MainWidget):
_translate = QtCore.QCoreApplication.translate
MainWidget.setWindowTitle(_translate("MainWidget", "基础模块用例"))


if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWidget = QtWidgets.QWidget()
ui = Ui_MainWidget()
ui.setupUi(MainWidget)
MainWidget.show()
sys.exit(app.exec_())

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'D:\project\py\change\widgetmodel.ui'
#
# Created by: PyQt5 UI code generator 5.5.1
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_WidgetModel(QtWidgets.QWidget): # object,
def __init__(self, label_name = "label", button_name = "button"):
super(Ui_WidgetModel, self).__init__()
self.label_name = label_name
self.button_name = button_name
def setupUi(self, WidgetModel):
WidgetModel.setObjectName("WidgetModel")
WidgetModel.resize(400, 115)
self.label = QtWidgets.QLabel(WidgetModel)
self.label.setGeometry(QtCore.QRect(30, 40, 81, 31))
font = QtGui.QFont()
font.setFamily("微软雅黑")
font.setPointSize(12)
self.label.setFont(font)
self.label.setObjectName(self.label_name)
self.pushButton = QtWidgets.QPushButton(WidgetModel)
self.pushButton.setGeometry(QtCore.QRect(270, 40, 101, 31))
font = QtGui.QFont()
font.setFamily("微软雅黑")
font.setPointSize(12)
self.pushButton.setFont(font)
self.pushButton.setObjectName(self.button_name)
self.textEdit = QtWidgets.QTextEdit(WidgetModel)
self.textEdit.setGeometry(QtCore.QRect(130, 40, 104, 31))
font = QtGui.QFont()
font.setFamily("微软雅黑")
font.setPointSize(12)
self.textEdit.setFont(font)
self.textEdit.setObjectName("textEdit")

self.retranslateUi(WidgetModel)
QtCore.QMetaObject.connectSlotsByName(WidgetModel)

def retranslateUi(self, WidgetModel):
_translate = QtCore.QCoreApplication.translate
WidgetModel.setWindowTitle(_translate("WidgetModel", "Form"))
self.label.setText(_translate("WidgetModel", self.label_name))
self.pushButton.setText(_translate("WidgetModel", self.button_name))


if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
WidgetModel = QtWidgets.QWidget()
ui = Ui_WidgetModel("label", "button")
ui.setupUi(WidgetModel)
WidgetModel.show()
sys.exit(app.exec_())


下面是main.py
import sys
from PyQt5 import QtCore
from PyQt5.QtWidgets import QWidget, QApplication, QGridLayout, QVBoxLayout, QLabel, QLineEdit
from QtUi.Ui_mainwidget import Ui_MainWidget
from QtUi.Ui_widgetmodel import Ui_WidgetModel


class MainWidget(Ui_MainWidget, QWidget):
def __init__(self):
super(MainWidget, self).__init__()
self.setupUi(self)
# 一些信号槽
self.model1 = Ui_WidgetModel()
# self.model2 = Ui_WidgetModel("测试", "确定")
self.model1.show()
self.usr = QLabel("用户:", self)
layout = QGridLayout(self)
layout.addWidget(self.model1)
layout.addWidget(self.usr)


if __name__ == "__main__":
app = QApplication(sys.argv)
mainshow = MainWidget()
mainshow.show()
sys.exit(app.exec_())





以上源码可以直接运行,我单独对mainwidget和widgetModel测试是可以的,但是main.py显示结果为:

​​​

用户的上面是我添加的widget,只是暂用了空间,并没有显示出内容,请各位指点迷津,谢谢!
...全文
440 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
齐风 2016-07-26
  • 打赏
  • 举报
回复
未初始化界面导致: main修改下 widget_model1 = QWidget() self.model1.setupUi(widget_model1) mainlayout.addWidget(widget_model1)即可
lxx1991abc 2016-07-25
  • 打赏
  • 举报
回复
楼主,你的这个问题解决了吗?

16,199

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧