Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以正确的方式设置表单布局。QGridLayout.addLayout(QLayout,int,int,Qt.Alignment=0):参数不足_Python_User Interface_Layout_Pyqt_Qgridlayout - Fatal编程技术网

Python 以正确的方式设置表单布局。QGridLayout.addLayout(QLayout,int,int,Qt.Alignment=0):参数不足

Python 以正确的方式设置表单布局。QGridLayout.addLayout(QLayout,int,int,Qt.Alignment=0):参数不足,python,user-interface,layout,pyqt,qgridlayout,Python,User Interface,Layout,Pyqt,Qgridlayout,我正在尝试为用户信息数据制作表单: #!/usr/bin/python from PyQt4.QtCore import * from PyQt4.QtGui import * import sys, os, time class SetName(QWidget): def __init__(self): QWidget.__init__(self) self.show() toplayout = QGridLayout()

我正在尝试为用户信息数据制作表单:

#!/usr/bin/python
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys, os, time

class SetName(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        self.show()
        toplayout = QGridLayout()
        self.setWindowTitle('Personal Info')
        self.form_layout = QFormLayout()
        self.setLayout(self.form_layout)
        self.line_edit_param = QLineEdit(self)

        self.line_edit_param.setPlaceholderText("Write Here")
        self.form_layout.addRow('Write Name', self.line_edit_param)      
        toplayout.addLayout(self.form_layout)
        self.setFocus()

class LearnApp(QDialog):
    def __init__(self):
        super(QDialog, self).__init__()
        self.setWindowTitle("LearnApp")

        self.active = False

        close_button = QPushButton("Close")
        close_button.clicked.connect(self.close)

        self.check_button = QPushButton("Check")
        self.check_button.clicked.connect(self.set_data)        
        self.tr = QTextEdit()
        self.tr.setReadOnly(True)
        # layout
        layout = QHBoxLayout()        
        #layout.addWidget(self.button3)
        sub_layout = QVBoxLayout()
        sub_layout.addWidget(self.check_button)
        sub_layout.addWidget(close_button)
        layout.addLayout(sub_layout)
        layout.addWidget(self.tr)
        self.setLayout(layout)
        self.setFocus()

    def set_data(self):
        print "in set_data"
        SetName()

app = QApplication(sys.argv)
dialog = LearnApp()
dialog.show()
app.exec_()
它以我想要的方式打开表单,但它给了我以下错误:

Traceback (most recent call last):
  File "data_log.py", line 50, in set_data
    SetName()
  File "data_log.py", line 20, in __init__
    toplayout.addLayout(self.form_layout)
TypeError: arguments did not match any overloaded call:
  QGridLayout.addLayout(QLayout, int, int, Qt.Alignment alignment=0): not enough arguments
  QGridLayout.addLayout(QLayout, int, int, int, int, Qt.Alignment alignment=0): not enough arguments
我到底错在哪里?我应该如何处理这个问题?
我尝试了很多次调试,但没有意识到我所犯的错误。

您是否阅读了错误消息?它准确地告诉您问题是什么,因此无需进一步调试。函数有四个或六个参数,只有最后一个是可选的。您只提供了一个参数-因此,正如消息所说,“没有足够的参数”。我不知道您想要得到什么样的布局。将小部件的布局设置为self.form_布局(QFormlayout)。但随后您尝试将self.form_布局添加到toplayout(QGridLayout)。你是否打算将toplayout添加到self.form_布局中?@ekhumaro那么在这种情况下,我的论点应该是什么呢??我不明白。@Becca将self.form\u布局添加到toplayout是错误的??我复制了我在LearnApp中做的同样的事情,我在那里做布局。addLayout(sub_layout)@tryPy。我提供了相关Qt文档的链接。