python3.7 error PYQT5 - NameError: name 'self' is not defined
alon.najman at gmail.com
alon.najman at gmail.com
Fri Sep 21 17:54:44 EDT 2018
Hi when I disconnect the internet I get an error NameError: name 'self' is not defined. I really dont get it.. thanks all. Is that a bug? or my fault?
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\programming Alon\stock market app\PROJECT\AlonStockMarket.py", line 93, in secret
print(ping('google.com'))
File "C:\programming Alon\stock market app\PROJECT\AlonStockMarket.py", line 72, in ping
conn.connect((addr, 80))
socket.gaierror: [Errno 11001] getaddrinfo failed
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Alon\AppData\Local\Programs\Python\Python37-32\lib\threading.py", line 917, in _bootstrap_inner
self.run()
File "C:\Users\Alon\AppData\Local\Programs\Python\Python37-32\lib\threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "C:\programming Alon\stock market app\PROJECT\AlonStockMarket.py", line 95, in secret
self.pushButton.setDisabled(True)
NameError: name 'self' is not defined
this is my code:
import sys
import requests
from lxml import html
import requests
import urllib.request, urllib.error, urllib.parse
import _thread
from PyQt5 import QtCore, QtGui, QtWidgets
import time
import threading
import ctypes # An included library with Python install.
global flag
global loopexit
global UserSymbol
global RadioButtonBellow
global UserSymbol
global UserStockPrice
global RadioButtonAbove
global SMScheckBox
global varUser
global varPass
varUser=0
varPass=0
UserSymbol=0
RadioButtonBellow=0
RadioButtonAbove=0
UserSymbol=0
UserStockPrice=0
loopexit=0
from urllib.request import urlopen
import time
import random
import struct
import select
import socket
def chk(data):
x = sum(x << 8 if i % 2 else x for i, x in enumerate(data)) & 0xFFFFFFFF
x = (x >> 16) + (x & 0xFFFF)
x = (x >> 16) + (x & 0xFFFF)
return struct.pack('<H', ~x & 0xFFFF)
import time
import random
import struct
import select
import socket
def chk(data):
x = sum(x << 8 if i % 2 else x for i, x in enumerate(data)) & 0xFFFFFFFF
x = (x >> 16) + (x & 0xFFFF)
x = (x >> 16) + (x & 0xFFFF)
return struct.pack('<H', ~x & 0xFFFF)
def ping(addr, timeout=1, number=1, data=b''):
with socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_ICMP) as conn:
payload = struct.pack('!HH', random.randrange(0, 65536), number) + data
conn.connect((addr, 80))
conn.sendall(b'\x08\0' + chk(b'\x08\0\0\0' + payload) + payload)
start = time.time()
while select.select([conn], [], [], max(0, start + timeout - time.time()))[0]:
data = conn.recv(65536)
if len(data) < 20 or len(data) < struct.unpack_from('!xxH', data)[0]:
continue
if data[20:] == b'\0\0' + chk(b'\0\0\0\0' + payload) + payload:
return time.time() - start
def secret():
flag=0
while True:
flag=0
time.sleep(5)
try:
if flag==1:
self.pushButton.setDisabled(False)
flag=0
print(ping('google.com'))
except:
self.pushButton.setDisabled(True)
flag=1
def Mbox(title, text, style):
return ctypes.windll.user32.MessageBoxW(0, text, title, style)
Mbox('Problem', 'No internet connection', 1 )
print("No internet connection")
t2 = threading.Thread(target=secret)
t2.start()
def myfunction():
import paramiko
import sys
global RadioButtonBellow
global UserSymbol
global UserStockPrice
global RadioButtonAbove
global varUser
global varPass
RadioButtonBellow=str(RadioButtonBellow)
varUser=str(varUser)
UserSymbol=str(UserSymbol)
UserStockPrice=str(UserStockPrice)
RadioButtonAbove=str(RadioButtonAbove)
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_AlonStockMarketApp(object):
def setupUi(self, AlonStockMarketApp):
AlonStockMarketApp.setObjectName("AlonStockMarketApp")
AlonStockMarketApp.resize(799, 591)
font = QtGui.QFont()
font.setPointSize(16)
AlonStockMarketApp.setFont(font)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("../../../Users/Alon/Downloads/Alon/icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
AlonStockMarketApp.setWindowIcon(icon)
self.radioButton = QtWidgets.QRadioButton(AlonStockMarketApp)
self.radioButton.setGeometry(QtCore.QRect(90, 250, 191, 24))
font = QtGui.QFont()
font.setPointSize(14)
self.radioButton.setFont(font)
self.radioButton.setObjectName("radioButton")
self.buttonGroup_2 = QtWidgets.QButtonGroup(AlonStockMarketApp)
self.buttonGroup_2.setObjectName("buttonGroup_2")
self.buttonGroup_2.addButton(self.radioButton)
self.checkBox = QtWidgets.QCheckBox(AlonStockMarketApp)
self.checkBox.setGeometry(QtCore.QRect(320, 510, 131, 17))
font = QtGui.QFont()
font.setPointSize(14)
self.checkBox.setFont(font)
self.checkBox.setObjectName("checkBox")
self.checkBox_2 = QtWidgets.QCheckBox(AlonStockMarketApp)
self.checkBox_2.setGeometry(QtCore.QRect(320, 540, 141, 17))
font = QtGui.QFont()
font.setPointSize(14)
self.checkBox_2.setFont(font)
self.checkBox_2.setObjectName("checkBox_2")
self.radioButton_2 = QtWidgets.QRadioButton(AlonStockMarketApp)
self.radioButton_2.setGeometry(QtCore.QRect(310, 250, 186, 24))
font = QtGui.QFont()
font.setPointSize(14)
self.radioButton_2.setFont(font)
self.radioButton_2.setObjectName("radioButton_2")
self.buttonGroup_2.addButton(self.radioButton_2)
self.pushButton = QtWidgets.QPushButton(AlonStockMarketApp)
self.pushButton.setEnabled(True)
self.pushButton.setGeometry(QtCore.QRect(90, 520, 72, 31))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton.setFont(font)
self.pushButton.setObjectName("pushButton")
self.radioButton_3 = QtWidgets.QRadioButton(AlonStockMarketApp)
self.radioButton_3.setGeometry(QtCore.QRect(90, 310, 191, 24))
font = QtGui.QFont()
font.setPointSize(14)
self.radioButton_3.setFont(font)
self.radioButton_3.setObjectName("radioButton_3")
self.buttonGroup = QtWidgets.QButtonGroup(AlonStockMarketApp)
self.buttonGroup.setObjectName("buttonGroup")
self.buttonGroup.addButton(self.radioButton_3)
self.radioButton_4 = QtWidgets.QRadioButton(AlonStockMarketApp)
self.radioButton_4.setGeometry(QtCore.QRect(310, 310, 186, 24))
font = QtGui.QFont()
font.setPointSize(14)
self.radioButton_4.setFont(font)
self.radioButton_4.setObjectName("radioButton_4")
self.buttonGroup.addButton(self.radioButton_4)
self.pushButton_2 = QtWidgets.QPushButton(AlonStockMarketApp)
self.pushButton_2.setGeometry(QtCore.QRect(30, 20, 75, 31))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton_2.setFont(font)
self.pushButton_2.setObjectName("pushButton_2")
self.textEdit_4 = QtWidgets.QTextEdit(AlonStockMarketApp)
self.textEdit_4.setGeometry(QtCore.QRect(330, 393, 221, 38))
font = QtGui.QFont()
font.setPointSize(16)
self.textEdit_4.setFont(font)
self.textEdit_4.setObjectName("textEdit_4")
self.textEdit_5 = QtWidgets.QTextEdit(AlonStockMarketApp)
self.textEdit_5.setGeometry(QtCore.QRect(330, 350, 221, 38))
font = QtGui.QFont()
font.setPointSize(16)
self.textEdit_5.setFont(font)
self.textEdit_5.setObjectName("textEdit_5")
self.label = QtWidgets.QLabel(AlonStockMarketApp)
self.label.setGeometry(QtCore.QRect(80, 180, 151, 16))
font = QtGui.QFont()
font.setPointSize(14)
self.label.setFont(font)
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(AlonStockMarketApp)
self.label_2.setGeometry(QtCore.QRect(370, 180, 71, 16))
font = QtGui.QFont()
font.setPointSize(14)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(AlonStockMarketApp)
self.label_3.setGeometry(QtCore.QRect(180, 360, 121, 20))
font = QtGui.QFont()
font.setPointSize(14)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(AlonStockMarketApp)
self.label_4.setGeometry(QtCore.QRect(160, 400, 171, 20))
font = QtGui.QFont()
font.setPointSize(14)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.label_5 = QtWidgets.QLabel(AlonStockMarketApp)
self.label_5.setGeometry(QtCore.QRect(170, 30, 351, 31))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(18)
self.label_5.setFont(font)
self.label_5.setObjectName("label_5")
self.pushButton_3 = QtWidgets.QPushButton(AlonStockMarketApp)
self.pushButton_3.setGeometry(QtCore.QRect(180, 520, 72, 31))
font = QtGui.QFont()
font.setPointSize(14)
self.pushButton_3.setFont(font)
self.pushButton_3.setObjectName("pushButton_3")
self.textEdit = QtWidgets.QTextEdit(AlonStockMarketApp)
self.textEdit.setGeometry(QtCore.QRect(240, 170, 121, 38))
font = QtGui.QFont()
font.setPointSize(16)
self.textEdit.setFont(font)
self.textEdit.setObjectName("textEdit")
self.textEdit_7 = QtWidgets.QTextEdit(AlonStockMarketApp)
self.textEdit_7.setGeometry(QtCore.QRect(450, 170, 221, 38))
font = QtGui.QFont()
font.setPointSize(16)
self.textEdit_7.setFont(font)
self.textEdit_7.setObjectName("textEdit_7")
self.minimize = QtWidgets.QPushButton(AlonStockMarketApp)
self.minimize.setGeometry(QtCore.QRect(564, 20, 91, 31))
font = QtGui.QFont()
font.setPointSize(14)
self.minimize.setFont(font)
self.minimize.setObjectName("minimize")
self.pushButton_4 = QtWidgets.QPushButton(AlonStockMarketApp)
self.pushButton_4.setGeometry(QtCore.QRect(20, 90, 101, 41))
font = QtGui.QFont()
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.pushButton_4.setFont(font)
self.pushButton_4.setObjectName("pushButton_4")
self.textEdit_2 = QtWidgets.QTextEdit(AlonStockMarketApp)
self.textEdit_2.setGeometry(QtCore.QRect(410, 450, 121, 38))
font = QtGui.QFont()
font.setPointSize(16)
self.textEdit_2.setFont(font)
self.textEdit_2.setObjectName("textEdit_2")
self.label_8 = QtWidgets.QLabel(AlonStockMarketApp)
self.label_8.setGeometry(QtCore.QRect(180, 460, 221, 16))
font = QtGui.QFont()
font.setPointSize(14)
self.label_8.setFont(font)
self.label_8.setObjectName("label_8")
self.label_7 = QtWidgets.QLabel(AlonStockMarketApp)
self.label_7.setGeometry(QtCore.QRect(420, 90, 85, 23))
font = QtGui.QFont()
font.setPointSize(14)
self.label_7.setFont(font)
self.label_7.setObjectName("label_7")
self.label_6 = QtWidgets.QLabel(AlonStockMarketApp)
self.label_6.setGeometry(QtCore.QRect(130, 90, 44, 23))
font = QtGui.QFont()
font.setPointSize(14)
self.label_6.setFont(font)
self.label_6.setObjectName("label_6")
self.textEdit_3 = QtWidgets.QTextEdit(AlonStockMarketApp)
self.textEdit_3.setGeometry(QtCore.QRect(510, 80, 253, 41))
self.textEdit_3.setObjectName("textEdit_3")
self.textEdit_6 = QtWidgets.QTextEdit(AlonStockMarketApp)
self.textEdit_6.setGeometry(QtCore.QRect(180, 80, 221, 41))
self.textEdit_6.setObjectName("textEdit_6")
self.retranslateUi(AlonStockMarketApp)
QtCore.QMetaObject.connectSlotsByName(AlonStockMarketApp)
self.pushButton.clicked.connect(self.printMessage)
self.radioButton.toggled.connect(self.myradioButton1_function)
self.radioButton_2.toggled.connect(self.myradioButton2_function)
self.pushButton_3.clicked.connect(self.stopButton)
self.checkBox.stateChanged.connect(self.SMScheckBox)
self.minimize.clicked.connect(self.Minimize)
self.textEdit.setTabChangesFocus(True)
self.textEdit_5.setTabChangesFocus(True)
self.textEdit_4.setTabChangesFocus(True)
self.textEdit_7.setTabChangesFocus(True)
def Minimize(self):
import win32gui, win32con
import os
import math
import time
time.sleep(2)
Minimize = win32gui.GetForegroundWindow()
win32gui.ShowWindow(Minimize, win32con.SW_MINIMIZE)
def SMScheckBox(self):
global SMScheckBox
if self.checkBox.isChecked()==True:
print("hi checkbox")
else:
print("no")
def myradioButton1_function(self):
global RadioButtonAbove
if self.radioButton.isChecked():
print ('Above is Checked')
RadioButtonAbove=self.radioButton.isChecked()
RadioButtonBellow=self.radioButton_2.isChecked()
def myradioButton2_function(self):
global RadioButtonBellow
if self.radioButton_2.isChecked():
print ('Bellow is Checked')
RadioButtonBellow=self.radioButton_2.isChecked()
RadioButtonAbove=self.radioButton.isChecked()
def printMessage(self):
global UserSymbol
global UserStockPrice
global RadioButtonBellow
global RadioButtonAbove
global varUser
global varPass
varUser=self.textEdit_5.toPlainText()
varPass=self.textEdit_4.toPlainText()
UserSymbol=self.textEdit.toPlainText()
UserSymbol=UserSymbol[0:4]
UserStockPrice=self.textEdit_7.toPlainText()
if not varPass or not varUser or UserSymbol==0 or UserStockPrice==0 or (RadioButtonAbove==0 and RadioButtonBellow==0):
def Mbox(title, text, style):
return ctypes.windll.user32.MessageBoxW(0, text, title, style)
Mbox('you need to enter all data first', 'you need to choose Stock value,price,bellow/above price', 1 )
else:
self.pushButton.setDisabled(True)
self.pushButton_3.setDisabled(False)
UserStockPrice=float(UserStockPrice)
UserSymbol=str(UserSymbol)
t = threading.Thread(target=myfunction)
t.start()
def stopButton(self):
global loopexit
loopexit=1
self.pushButton.setDisabled(False)
self.pushButton_3.setDisabled(True)
def retranslateUi(self, AlonStockMarketApp):
_translate = QtCore.QCoreApplication.translate
AlonStockMarketApp.setWindowTitle(_translate("AlonStockMarketApp", "Dialog"))
self.radioButton.setText(_translate("AlonStockMarketApp", "Above Price (x>)"))
self.checkBox.setText(_translate("AlonStockMarketApp", "SMS ALERT"))
self.checkBox_2.setText(_translate("AlonStockMarketApp", "GMAIL ALERT"))
self.radioButton_2.setText(_translate("AlonStockMarketApp", "Bellow Price (x<)"))
self.pushButton.setText(_translate("AlonStockMarketApp", "START"))
self.radioButton_3.setText(_translate("AlonStockMarketApp", "Get alert once a day"))
self.radioButton_4.setText(_translate("AlonStockMarketApp", "Get alert every time"))
self.pushButton_2.setText(_translate("AlonStockMarketApp", "EXIT"))
self.textEdit_4.setHtml(_translate("AlonStockMarketApp", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:16pt; font-weight:400; font-style:normal;\">\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
self.textEdit_5.setHtml(_translate("AlonStockMarketApp", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:16pt; font-weight:400; font-style:normal;\">\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
self.label.setText(_translate("AlonStockMarketApp", "SYMBOL of stock:"))
self.label_2.setText(_translate("AlonStockMarketApp", "PRICE :"))
self.label_3.setText(_translate("AlonStockMarketApp", "User of Gmail:"))
self.label_4.setText(_translate("AlonStockMarketApp", "Password of Gmail:"))
self.label_5.setText(_translate("AlonStockMarketApp", "ALON STOCK MARKET APP"))
self.pushButton_3.setText(_translate("AlonStockMarketApp", "STOP"))
self.textEdit.setHtml(_translate("AlonStockMarketApp", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:16pt; font-weight:400; font-style:normal;\">\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
self.textEdit_7.setHtml(_translate("AlonStockMarketApp", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:16pt; font-weight:400; font-style:normal;\">\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
self.minimize.setText(_translate("AlonStockMarketApp", "Minimize"))
self.pushButton_4.setText(_translate("AlonStockMarketApp", "Sign In"))
self.textEdit_2.setHtml(_translate("AlonStockMarketApp", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:16pt; font-weight:400; font-style:normal;\">\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
self.label_8.setText(_translate("AlonStockMarketApp", "Phone number (for SMS):"))
self.label_7.setText(_translate("AlonStockMarketApp", "Password:"))
self.label_6.setText(_translate("AlonStockMarketApp", "User:"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
AlonStockMarketApp = QtWidgets.QDialog()
ui = Ui_AlonStockMarketApp()
ui.setupUi(AlonStockMarketApp)
AlonStockMarketApp.show()
sys.exit(app.exec_())
More information about the Python-list
mailing list