|  | 
 
| 
本帖最后由 haiyingbs 于 2022-9-21 14:01 编辑
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 我有二个文件,一个是view.py 一个是controller.py文件
 我在view.py,定义了“getnew”方法:生成新按钮控件事件。
 我在controller.py,添加了一个点击按钮事件,来调用“getnew”这个方法。
 
 
 但结果是,事件都触发了,就是没有显示有舞台上。有高手知道是什么原因吗?
 
 还有就是我购买了鱼币,怎么悬赏啊?
 
 
 代码如下:
 
 #############################################
 view.py:
 from PyQt5 import QtWidgets
 from PyQt5.QtWidgets import QWidget, QMainWindow, QPushButton, QVBoxLayout
 
 
 class View(QMainWindow):
 
 def __init__(self):
 super(View, self).__init__()
 self.setUI()
 
 def setUI(self):
 self.widgetWin = QWidget()
 
 self.btn = QPushButton(self.widgetWin)
 self.btn.setText('我是旧按钮')
 self.layout = QVBoxLayout(self.widgetWin)
 self.layout.addWidget(self.btn)
 
 self.setCentralWidget(self.widgetWin)
 
 def getnew(self, str):
 """添加新按钮方法"""
 print('调用了getnew')
 self.btn1 = QtWidgets.QPushButton(str)
 self.btn1.setText('我是新按钮')
 
 #############################################
 controller.py
 import view
 
 class Controller:
 
 def __init__(self):
 # 加载ui界面类,用于设置ui
 self.view = view.View()
 
 self.view.btn.clicked.connect(lambda: self.onBtnMainClicked())
 # 如果调用生成新按钮方法,放在init里就会生效
 # self.view.getnew(self.view.widgetWin)
 self.view.show()
 
 def onBtnMainClicked(self):
 # 使用model带的函数处理数据
 print('调用了onBtnMainClicked')
 # 调用创建新按钮方法没有返应
 self.view.getnew(self.view.widgetWin)
 
 #######################################
 main.py
 
 from PyQt5 import QtWidgets
 import sys
 import controller
 
 if __name__ == "__main__":
 app = QtWidgets.QApplication([])
 ctr = controller.Controller()
 
 app.exec_()
 
 
 | 
 |