python - How to get input from QTextEdit in PyQt4 -


how solve following problem unable text qtextedit , insert database...

code:

import sys import mysqldb #from pyqt4.qtcore import * pyqt4.qtgui import *  e1=none e2=none  def window():     app=qapplication(sys.argv)     win=qwidget()     win.setwindowtitle("sample")     vbox=qvboxlayout()     e1 = qtextedit()     e2 = qtextedit()     vbox.addwidget(e1)     vbox.addwidget(e2)     vbox.addstretch()     b1=qpushbutton("tap it!")     vbox.addwidget(b1)     b1.clicked.connect(b1_action)     win.setgeometry(100,100,200,50)     win.setlayout(vbox)     win.show()     sys.exit(app.exec_())  def b1_action():     print "button clicked"     db = mysqldb.connect('localhost', 'root', 'mysql', 'tecoc354')     cursor=db.cursor()     x1=e1.toplaintext()     x2=e2.toplaintext()     print x1," ",x2," "     #sql="create table sample(addr varchar(10),name varchar(10))"    # cursor.execute(sql)     sql2="insert tecoc354.sample values(%s,%s)"%(x1,x2)     cursor.execute(sql2)     db.commit()     db.close()  window() 

the problem here is, in b1_action() variables e1 , e2 not recognized qtextedit(). educational purpose add line print e1 both functions. you'll get:

<pyqt4.qtgui.qtextedit object @ 0x01da7490> none 

printed window() , b1_action(). see, in b1_action() e1 not qtextedit. e1 / e2 in window() not same variables e1 / e2 in b1_action()

the shortest way solve make e1 , e2 global variables. first delete lines

e1=none e2=none 

and define both variables global inside of window:

from pyqt4.qtgui import *  def window():     global e1     global e2     app=qapplication(sys.argv)     win=qwidget()     win.setwindowtitle("sample")     vbox=qvboxlayout()     e1 = qtextedit()     e2 = qtextedit() 

you can find useful information in question , answers global variables

generally not recommend build gui based on functions , global variables. find tutorial , learn how use classes. example this one


Comments

Popular posts from this blog

ios - MKAnnotationView layer is not of expected type: MKLayer -

ZeroMQ on Windows, with Qt Creator -

unity3d - Unity SceneManager.LoadScene quits application -