我有类似于下面的东西。我想从顶部工具栏打开一个新窗口,这是archive,当前打开了一个新窗口,但它很小并且是空白的,它不是由qtdesigner生成的保存为archive.ui的窗口。窗口的对象名称是ArchiveWindow。
class GUI(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
uic.loadUi('gui.ui', self)
self.actionSingle_Archive.triggered.connect(self.archive)
...
def archive(self):
self.window = QtWidgets.QMainWindow()
uic.loadUi('archive.ui')
self.window.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
win = GUI()
win.show()
sys.exit(app.exec())发布于 2021-09-19 12:00:50
如loadUi文档中所述:
资源后缀,loadUi(uifile,=‘’,
_ baseinstance=None =‘_rc’)
加载Qt设计器.ui文件并返回用户界面的实例。
.ui str的文件名或类似文件的对象- Qt基类的可选实例。如果指定,则在其中创建用户界面。否则,将自动创建基类的新实例。这就是您在__init__中已经在做的事情:调用uic.loadUi('gui.ui', self)意味着UI安装在self上(它代表GUI的当前实例)。
只需将要在其上设置UI的实例添加到参数。
def archive(self):
self.window = QtWidgets.QMainWindow()
uic.loadUi('archive.ui', self.window)
self.window.show()发布于 2021-10-30 14:04:30
您不需要将父对象添加到uic.load中,下面是一个示例:
uic.load('archive.ui', parent)要加载ui文件作为主窗口,只需将parent替换为self:
uic.load('archive.ui', self)https://stackoverflow.com/questions/69243030
复制相似问题