PyQT: como abrir uma nova janela

user3060854:

Antes de tudo, perguntas semelhantes foram respondidas antes, mas preciso de ajuda com esta.

Eu tenho uma janela que contém um botão (Primeira Classe) e quero pressionar, uma segunda janela em branco será exibida (Segunda Classe) .

Eu brinquei com o código copiado desta pergunta: PyQT ao clicar em abrir nova janela e escrevi este código:

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

from PyQt4 import QtGui, QtCore
import sys
import design1, design2

class Second(QtGui.QMainWindow, design2.Ui_MainWindow):
    def __init__(self, parent=None):
        super(Second, self).__init__(parent)
        self.setupUi(self)

class First(QtGui.QMainWindow, design1.Ui_MainWindow):
    def __init__(self, parent=None):
        super(First, self).__init__(parent)
        self.setupUi(self)

        self.pushButton.clicked.connect(self.on_pushButton_clicked)
        self.dialog = Second(self)

    def on_pushButton_clicked(self):
        self.dialog.exec_()

def main():
    app = QtGui.QApplication(sys.argv)
    main = First()
    main.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()  

mas on_pressed, esta mensagem de erro aparece:

AttributeError: 'Second' object has no attribute 'exec_'

(design1 e design2 foram derivados do designer Qt.)

Qualquer pensamento seria apreciado.

salomonderossi:

Eu acho que você deveria usar o showmétodo

Aqui está um exemplo de trabalho (derivado do seu):

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from PyQt4 import QtGui, QtCore
import sys


class Second(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(Second, self).__init__(parent)


class First(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(First, self).__init__(parent)
        self.pushButton = QtGui.QPushButton("click me")

        self.setCentralWidget(self.pushButton)

        self.pushButton.clicked.connect(self.on_pushButton_clicked)
        self.dialog = Second(self)

    def on_pushButton_clicked(self):
        self.dialog.show()


def main():
    app = QtGui.QApplication(sys.argv)
    main = First()
    main.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

Se você precisar de uma nova janela sempre que clicar no botão, poderá alterar o código que a caixa de diálogo é criada dentro do the on_pushButton_clickedmétodo

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from PyQt4 import QtGui, QtCore
import sys


class Second(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(Second, self).__init__(parent)


class First(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(First, self).__init__(parent)
        self.pushButton = QtGui.QPushButton("click me")

        self.setCentralWidget(self.pushButton)

        self.pushButton.clicked.connect(self.on_pushButton_clicked)
        self.dialogs = list()

    def on_pushButton_clicked(self):
        dialog = Second(self)
        self.dialogs.append(dialog)
        dialog.show()


def main():
    app = QtGui.QApplication(sys.argv)
    main = First()
    main.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como faço para ocultar a janela atual ao abrir uma nova usando PyQt5

Como abrir uma nova guia em uma janela anônima existente?

Odoo abrir uma nova janela

Como posso abrir um link em uma nova janela?

Como abrir a página de ajuda em uma nova janela?

Como posso abrir uma nova janela após pressionar OK?

Como abrir a página de ajuda em uma nova janela?

Como abrir a página de ajuda em uma nova janela?

Como abrir uma nova janela sem alterar o URL atual?

JavaScript: como abrir uma nova janela com recursos padrão?

Google Chrome - como abrir uma nova janela, em segundo plano

Como posso abrir uma nova janela sem usar JS

Como abrir a página em uma nova guia / janela?

como abrir uma nova janela com selenium python

Como abrir uma nova janela javafx fxml em if condtition?

HTML Como abrir este URL em uma nova janela?

Como posso abrir uma nova janela após pressionar OK?

JavaFX - Como abrir uma nova etapa na mesma janela?

Como abrir uma nova guia ou janela ao usar CodeceptJS

Como abrir um link em uma nova janela?

Como abrir o depurador python em uma nova janela no vscode?

Como abrir corretamente uma nova janela no JQuery AJAX Success?

Como abrir uma nova janela com vista em xPages e definir o tamanho da nova janela

Como forçar o redirecionamento para abrir em uma nova guia em vez de uma nova janela

como abrir uma nova janela e fechar a janela atual quando clico no botão Java GUI?

Como abrir um arquivo em uma nova janela a partir do prompt Abrir rapidamente?

Jquery attr Abrir uma nova janela

Como abrir uma imagem correta do srcset em uma nova janela?

Como abrir uma janela para uma nova tarefa e manter seu thread principal em execução

TOP lista

quentelabel

Arquivo