重新生成主类导致编译后复制



我有一个GUI应用程序与PyQt6框架,我需要改变每一个字符串,而不是为每个类写几百行。

我找到了解决方案:只要重新生成父类的实例,一切都会自动改变。

在代码编辑器中一切正常:它再次运行。

但编译后出现问题:再生主类->两个类。

我正在使用Nuitka使用此命令编译(此错误在Linux和windows上出现):

python -m nuitka --onefile --follow-imports --plugin-enable=pyqt6 --disable-console program.py

program.py:

import sys
import random
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QLabel
class Window(QWidget):
def __init__(self):
super().__init__()
b = QPushButton('Random')
b.clicked.connect(self._new)  # noqa
self.layout = QVBoxLayout()
self.layout.addWidget(b)
self.setLayout(self.layout)
self.show()
def _new(self):
self.rand = Number(random.randint(0, 10))
class Number(QWidget):
def __init__(self, n):
super().__init__()
self.n = QLabel(str(n))
self.b = QPushButton('Regenerate')
self.b.clicked.connect(self.regenerate)  # noqa
self.layout = QVBoxLayout()
self.layout.addWidget(self.n)
self.layout.addWidget(self.b)
self.setLayout(self.layout)
self.show()
@staticmethod
def regenerate():
global window
###################
window = Window()  # Bug appears here
###################

if __name__ == '__main__':
app = QApplication(sys.argv)
window = Window()
app.exec()

迁移到PySide6修复了这个问题

相关内容

  • 没有找到相关文章

最新更新