|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 haiyingbs 于 2022-9-21 14:01 编辑
我有二个文件,一个是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_()
|
|