0

我需要通过主窗口上的按钮槽调用一个表单(使用 QtDesigner 设计的自定义对话框)(也在 QtDesigned 上,因此是单独的文件)。下面是相关代码:

def __init__(self, parent = None):
    super(MainWindow, self).__init__(parent)

    self.setupUi(self)

    self.btn.clicked.connect(self.my_func)


def my_func(self):
    form = Form_UI.Custom_Dialog()

    if form.exec_():
        print "successfully opened"

我怎么会收到以下错误:

Traceback (most recent call last):
File "F:\myPath\code.py", line 27, in my_func
if form.exec_():
AttributeError: 'Custom_Dialog' object has no attribute 'exec_'

我不明白,因为以下代码(使用内置对话框)工作得很好:

def __init__(self, parent = None):
    super(MainWindow, self).__init__(parent)

    self.setupUi(self)

    self.btn.clicked.connect(self.my_func)


def my_func(self):
    form = QtGui.QDialog()

    if form.exec_():
        print "successfully opened"

任何帮助,将不胜感激。提前致谢。

4

1 回答 1

1

生成的类pyuic4不是从 派生的QDialog,所以如果你不像主窗口那样为那个ui文件写一个python类,你需要创建一个QDialog对象和一个ui类对象:

def my_func(self):
   form = QtGui.QDialog()
   ui_form = Form_UI.Custom_Dialog()
   ui_form.setupUi(form)     

   if form.exec_():
       print "successfully opened"
于 2013-07-02T18:33:27.793 回答