我正在尝试创建一个PYQT UI,用户可以在其中输入2个值,以便可以在不同文件或方法中的计算中使用这些值。如何获得这些要使用的值的返回?这是我的代码(我尝试过在线使用其他示例):
from PyQt5.QtWidgets import *
class GetLength(QDialog):
def __init__(self,parent= None):
super(GetLength, self).__init__(parent)
self.grid = QGridLayout(self)
self.grid.setSpacing(10)
self.LenLabel = QLabel('Please enter Length:')
self.grid.addWidget(self.LenLabel, 1, 0, 1, 1)
self.WidLabel = QLabel('Please enter Width:')
self.grid.addWidget(self.WidLabel, 2, 0, 1, 1)
self.Length = QLineEdit(self)
self.grid.addWidget(self.Length, 1, 1, 1, 1)
self.Width = QLineEdit(self)
self.grid.addWidget(self.Width, 2, 1, 1, 1)
self.submit = QPushButton('Submit', clicked=self.EnterButton)
self.grid.addWidget(self.submit, 4, 1, 1, 1)
def EnterButton(self):
a = self.Length.text()
b = self.Width.text()
return self.a, self.b
来自主文件:
from GetLength import *
import sys
app = QApplication(sys.argv)
edit_params__QD = GetLength()
edit_params__QD.exec_()
if edit_params__QD.result() == 0:
value1, value2 = edit_params__QD.EnterButton()
print('Success!', value1, value2)
答案 0 :(得分:1)
尝试一下:
import sys
from PyQt5.QtWidgets import *
class GetLength(QDialog):
def __init__(self,parent= None):
super(GetLength, self).__init__(parent)
self.grid = QGridLayout(self)
self.grid.setSpacing(10)
self.LenLabel = QLabel('Please enter Length:')
self.grid.addWidget(self.LenLabel, 1, 0, 1, 1)
self.WidLabel = QLabel('Please enter Width:')
self.grid.addWidget(self.WidLabel, 2, 0, 1, 1)
self.Length = QLineEdit(self)
self.grid.addWidget(self.Length, 1, 1, 1, 1)
self.Width = QLineEdit(self)
self.grid.addWidget(self.Width, 2, 1, 1, 1)
self.submit = QPushButton('Submit', clicked=self.EnterButton)
self.grid.addWidget(self.submit, 4, 1, 1, 1)
def EnterButton(self):
a = self.Length.text()
b = self.Width.text()
self.close() # +++
# return self.a, self.b
return a, b # +++
app = QApplication(sys.argv)
edit_params__QD = GetLength()
edit_params__QD.exec_()
if edit_params__QD.result() == 0:
value1, value2 = edit_params__QD.EnterButton()
print('Success!', value1, value2)
答案 1 :(得分:0)
您需要在按下dyn FnMut
按钮时关闭对话框窗口,然后将Submit
放入accept
处理程序中:
clicked
然后修复 self.submit = QPushButton('Submit', clicked=self.accept)
以返回局部变量:
EnterButton
然后在呼叫者站点上,通过检查def EnterButton(self):
a = self.Length.text()
b = self.Width.text()
return a, b
来检查对话框是否被关闭,是否可以接受:
result() == 1