0
我正在使用Python 2.7和PyQT4,我正在做一個簡單的計算器,我有兩個QLineEdit
,我有一個打印添加結果的函數。如何將QLineEdit值傳遞給另一個函數?
class Window(QtGui.QMainWindow):
global number_1_text
global number_2_text
def __init__(self):
super(Window, self).__init__()
self.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint)
#Main Window Settings
self.setGeometry(50,50,500,300)
self.setWindowTitle("Point of sale !")
self.setWindowIcon(QtGui.QIcon('python.png'))
#Close Action
exitAction = QtGui.QAction(QtGui.QIcon('python.png'),"Close Now !", self)
exitAction.setShortcut("Ctrl+Q")
exitAction.setStatusTip('Leave the Application')
exitAction.triggered.connect(self.close_application)
self.statusBar()
#Menubar
mainMenu = self.menuBar()
fileMenu = mainMenu.addMenu('&File')
fileMenu.addAction(exitAction)
# Create textboxs
number_1 = QtGui.QLineEdit(self)
number_1.move(20, 50)
number_1.resize(380,40)
self.number_1_text = number_1.text()
number_2 = QtGui.QLineEdit(self)
number_2.move(20, 100)
number_2.resize(380,40)
self.number_2_text = number_2.text()
#Main Home Proccess
quiteBtn = QtGui.QPushButton("Quite", self)
quiteBtn.resize(100, 50)
quiteBtn.move(50,220)
quiteBtn.clicked.connect(self.close_application)
addBtn = QtGui.QPushButton("Add", self)
addBtn.resize(100, 50)
addBtn.move(150,220)
addBtn.clicked.connect(self.addNumbers)
self.show()
def addNumbers(self):
print self.number_1_text
print self.number_2_text
print "Done"
#Close The Whole Application
def close_application(self):
choice = QtGui.QMessageBox.question(self, 'Exit !', 'Are you sure you wanna exit?',
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No
)
if choice == QtGui.QMessageBox.Yes:
sys.exit()
else:
pass
我試着用text()
函數來獲取值,並將其分配給類的全局變量,然後我試圖調用addNumbers
函數值,但我得到一個空值。
我想你的解決方案 但我得到 回溯(最近通話最後一個): 文件「C:\用戶\ LilEssam \桌面\ pos.py」第0行,在 class Window(QtGui.QMainWindow): 窗口中的第54行中的文件「C:\ Users \ LilEssam \ Desktop \ pos.py」 b = float(self.number_2.text()) NameError:name'self'未定義 –
@AhmedEssam。這是因爲你沒有在我的例子中使用代碼 - 'addNumbers'必須是'Window'類的一個方法。 – ekhumoro
謝謝隊友!它現在正在工作,非常感謝! –