Как отобразить пользовательский диалог, используя PyQt и QtDesigner для разработки пользовательского диалога? - PullRequest
1 голос
/ 30 июля 2011

Я разработал 2 виджета - один является основным виджетом приложения и пользовательским виджетом, который позволяет мне устанавливать настройки в моем основном приложении.Они названы - main и child.

Теперь я не могу отобразить дочерний виджет, когда нажимаю кнопку в основном приложении.Пытался извлечь уроки из программирования на Rapid GUI с использованием книг на Python и Qt, но приведенный здесь пример относится к форме с ручным кодированием, а не разработан с использованием QtDesigner.Я запутался.Пожалуйста, помогите.

Пока мой код такой -

import serial, sys

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from main import Ui_Form                      # main.py and child.py are the ui 
from child import Ui_Form as Child_Form       # files generated using pyuic4

class Main(QMainWindow):
    def __init__(self, parent = None):
        super(Main, self).__init__(parent)
        self.ui = Ui_Form()
        self.ui.setupUi(self)
        self.connect(self.ui.btnLaunch, SIGNAL("clicked()"), self.show)
    def show(self):
        dialog = QDialog()
        dialog.ui = Child_Form()
        dialog.ui.setupUi(self)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    myapp = Main()
    myapp.show()
    sys.exit(app.exec_())

Однако, когда я пытаюсь запустить эту программу, ничего не происходит.

1 Ответ

0 голосов
/ 16 июля 2013

Вместо этого кода:

self.connect(self.ui.btnLaunch, SIGNAL("clicked()"), self.show)
def show(self):
    dialog = QDialog()
    dialog.ui = Child_Form()
    dialog.ui.setupUi(self)

попробуйте с этим, должно работать:

self.connect(self.ui.btnLaunch, SIGNAL("clicked()"), self.showDialog)
def showDialog(self):
    dialog = QDialog()
    dialog.ui = Child_Form()
    dialog.ui.setupUi(self)
    dialog.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...