Skip to content

Instantly share code, notes, and snippets.

@eyllanesc
Created January 18, 2018 16:41
Show Gist options
  • Save eyllanesc/fc9e7efaa5a51d5af1c98f7a1e0d6a5c to your computer and use it in GitHub Desktop.
Save eyllanesc/fc9e7efaa5a51d5af1c98f7a1e0d6a5c to your computer and use it in GitHub Desktop.
import socket
import sys
import time
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import QThread
from klient_gui import Ui_MainWindow
class MyForm(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
# Pelen ekran
# self.showFullScreen()
self.showMaximized()
self.timer = QtCore.QTimer(self)
self.polaczenie = Polaczenie(self)
self.polaczenie.start()
#self.start_linczik(20)
@QtCore.pyqtSlot()
def updateLCD(self):
# Update the lcd
self.start_time -= 1
if self.start_time >= 0:
self.ui.lcdNumber.display("%d:%02d" % (self.start_time / 60, self.start_time % 60))
else:
self.timer.stop()
@QtCore.pyqtSlot(int)
def start_linczik(self, b):
self.start_time = b
self.ui.lcdNumber.display("%d:%02d" % (self.start_time / 60, self.start_time % 60))
self.timer.start(1000)
self.timer.timeout.connect(self.updateLCD)
class Polaczenie(QtCore.QThread):
sig = QtCore.pyqtSignal(str,str)
def __init__(self, parent):
super(Polaczenie, self).__init__(parent)
self.sig.connect(self.event_dispatcher)
def run(self):
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ip = "127.0.0.1"
port = 1234
adress = (ip, port)
server.bind(adress)
server.listen(1)
while True:
print("Start listenint on ", ip, " on ", port)
(client, addr) = server.accept()
print("Got connection from ", addr[0], ":", addr[1])
data = client.recv(1024)
data = data.decode()
print("Recived ", data, " from the client")
print("Processin data")
indeks_srednik = data.index(";")
instrukcja = data[:indeks_srednik]
try:
string = data[indeks_srednik+1:]
except Exception as e:
print(e)
try:
print(instrukcja)
print(string)
if instrukcja == "zamknij":
# Zamykanie aplikacji przy pomocy serwera
server.close()
sys.exit(0)
elif instrukcja == "czas_set":
self.sig.emit("czas_set", string)
except Exception as e:
print(e)
def event_dispatcher(self, a, b):
# funkcja dispatchujaca eventy
if a == "czas_set":
print("licznik start")
print(a)
print(b)
b=int(b)
#MyForm().start_linczik(b)
QtCore.QMetaObject.invokeMethod(self.parent(), "start_linczik",
QtCore.Qt.QueuedConnection, QtCore.Q_ARG(int, b))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = MyForm()
myapp.show()
sys.exit(app.exec_())
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'klient_gui.ui'
#
# Created by: PyQt5 UI code generator 5.9.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(284, 234)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout.setObjectName("verticalLayout")
self.lcdNumber = QtWidgets.QLCDNumber(self.centralwidget)
self.lcdNumber.setObjectName("lcdNumber")
self.verticalLayout.addWidget(self.lcdNumber)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 284, 25))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
import socket
import sys
import time
import datetime
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import QThread
from serwer_gui import Ui_MainWindow
class MyForm(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
# Syglany i sloty
self.ui.pushButtonKlientClose.clicked.connect(self.close_client)
self.ui.pushButtonCzasStart.clicked.connect(self.start_count)
def close_client(self):
c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
c.connect(("127.0.0.1", 1234))
c.send("zamknij;".encode())
c.close()
return
def start_count(self):
ilosc_minut = self.ui.spinBoxTime.value()
print(ilosc_minut)
c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
c.connect(("127.0.0.1", 1234))
c.send(("czas_set;10").encode())
c.close()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = MyForm()
myapp.show()
sys.exit(app.exec_())
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.9.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(314, 257)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout.setObjectName("verticalLayout")
self.pushButtonKlientClose = QtWidgets.QPushButton(self.centralwidget)
self.pushButtonKlientClose.setObjectName("pushButtonKlientClose")
self.verticalLayout.addWidget(self.pushButtonKlientClose)
self.pushButtonCzasStart = QtWidgets.QPushButton(self.centralwidget)
self.pushButtonCzasStart.setObjectName("pushButtonCzasStart")
self.verticalLayout.addWidget(self.pushButtonCzasStart)
self.spinBoxTime = QtWidgets.QSpinBox(self.centralwidget)
self.spinBoxTime.setObjectName("spinBoxTime")
self.verticalLayout.addWidget(self.spinBoxTime)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 314, 25))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButtonKlientClose.setText(_translate("MainWindow", "pushButtonKlientClose"))
self.pushButtonCzasStart.setText(_translate("MainWindow", "pushButtonCzasStart"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment