Created
January 18, 2018 16:41
-
-
Save eyllanesc/fc9e7efaa5a51d5af1c98f7a1e0d6a5c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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_()) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- 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_()) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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_()) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- 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