diff --git a/README.md b/README.md
index 20f28bee3cfd71fc1b03100b9f9f3632f8a8c284..b2972f30828f19038e5efe612831f989b8f5ffd5 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ The following packages are required in order to build the library:
   * setuptools
   * pybind11
   * numpy
-  * pyside2/pyqt5
+  * pyside2
 
 To build a binary distribution, the following additional packages are required:
 * Python:
diff --git a/b_asic/GUI/arrow.py b/b_asic/GUI/arrow.py
index 575d6aeca164ed0bd5d0560593bbd284912e7a34..cb980a5f635163156390b871766fa2965c7a561a 100644
--- a/b_asic/GUI/arrow.py
+++ b/b_asic/GUI/arrow.py
@@ -1,9 +1,9 @@
-from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QLabel, QAction,\
+from PySide2.QtWidgets import QApplication, QWidget, QMainWindow, QLabel, QAction,\
 QStatusBar, QMenuBar, QLineEdit, QPushButton, QSlider, QScrollArea, QVBoxLayout,\
 QHBoxLayout, QDockWidget, QToolBar, QMenu, QLayout, QSizePolicy, QListWidget, QListWidgetItem,\
 QGraphicsLineItem, QGraphicsWidget
-from PyQt5.QtCore import Qt, QSize, QLineF, QPoint, QRectF
-from PyQt5.QtGui import QIcon, QFont, QPainter, QPen
+from PySide2.QtCore import Qt, QSize, QLineF, QPoint, QRectF
+from PySide2.QtGui import QIcon, QFont, QPainter, QPen
 
 
 class Arrow(QGraphicsLineItem):
diff --git a/b_asic/GUI/drag_button.py b/b_asic/GUI/drag_button.py
index b81ea9d4a6cfcabcaea071154fcaaec452a8e84a..a417723ac8c4766813ab49ebf8434b86185a9c4f 100644
--- a/b_asic/GUI/drag_button.py
+++ b/b_asic/GUI/drag_button.py
@@ -7,17 +7,17 @@ import os.path
 
 from properties_window import PropertiesWindow
 
-from PyQt5.QtWidgets import QPushButton, QMenu, QAction
-from PyQt5.QtCore import Qt, QSize, pyqtSignal
-from PyQt5.QtGui import QIcon
+from PySide2.QtWidgets import QPushButton, QMenu, QAction
+from PySide2.QtCore import Qt, QSize, Signal
+from PySide2.QtGui import QIcon
 
 from utils import decorate_class, handle_error
 
 
 @decorate_class(handle_error)
 class DragButton(QPushButton):
-    connectionRequested = pyqtSignal(QPushButton)
-    moved = pyqtSignal()
+    connectionRequested = Signal(QPushButton)
+    moved = Signal()
     def __init__(self, name, operation, operation_path_name, is_show_name, window, parent = None):
         self.name = name
         self.is_show_name = is_show_name
diff --git a/b_asic/GUI/gui_interface.py b/b_asic/GUI/gui_interface.py
index a6d9a3b8f436c615201dac8ba7537272573cae00..2d42d808f24d6c55850ae122979f1498f2191a2f 100644
--- a/b_asic/GUI/gui_interface.py
+++ b/b_asic/GUI/gui_interface.py
@@ -7,7 +7,7 @@
 # WARNING! All changes made in this file will be lost!
 
 
-from PyQt5 import QtCore, QtGui, QtWidgets
+from PySide2 import QtCore, QtGui, QtWidgets
 
 
 class Ui_main_window(object):
diff --git a/b_asic/GUI/main_window.py b/b_asic/GUI/main_window.py
index aa30dc2a4d913acfbe3398750a105dd8bb9e2c91..049ef8be8546c7e75eeec75fd44bc2775f90085c 100644
--- a/b_asic/GUI/main_window.py
+++ b/b_asic/GUI/main_window.py
@@ -18,13 +18,13 @@ from utils import decorate_class, handle_error
 
 from numpy import linspace
 
-from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QLabel, QAction,\
+from PySide2.QtWidgets import QApplication, QWidget, QMainWindow, QLabel, QAction,\
 QStatusBar, QMenuBar, QLineEdit, QPushButton, QSlider, QScrollArea, QVBoxLayout,\
 QHBoxLayout, QDockWidget, QToolBar, QMenu, QLayout, QSizePolicy, QListWidget,\
 QListWidgetItem, QGraphicsView, QGraphicsScene, QShortcut, QGraphicsTextItem,\
 QGraphicsProxyWidget
-from PyQt5.QtCore import Qt, QSize
-from PyQt5.QtGui import QIcon, QFont, QPainter, QPen, QBrush, QKeySequence
+from PySide2.QtCore import Qt, QSize
+from PySide2.QtGui import QIcon, QFont, QPainter, QPen, QBrush, QKeySequence
 
 
 MIN_WIDTH_SCENE = 600
diff --git a/b_asic/GUI/port_button.py b/b_asic/GUI/port_button.py
index af2e7ef6de2df343334305f0fce63cc313c574d2..98189c1981fbcae3aa67596e0be1b9ff327956fc 100644
--- a/b_asic/GUI/port_button.py
+++ b/b_asic/GUI/port_button.py
@@ -1,12 +1,12 @@
 
 import sys
 
-from PyQt5.QtWidgets import QPushButton, QMenu
-from PyQt5.QtCore import Qt, pyqtSignal
+from PySide2.QtWidgets import QPushButton, QMenu
+from PySide2.QtCore import Qt, Signal
 
 class PortButton(QPushButton):
-    connectionRequested = pyqtSignal(QPushButton)
-    moved = pyqtSignal()
+    connectionRequested = Signal(QPushButton)
+    moved = Signal()
     def __init__(self, name, operation, window, parent=None):
         self.pressed = False
         self.window = window
diff --git a/b_asic/GUI/properties_window.py b/b_asic/GUI/properties_window.py
index 5aaee05c820f5d58a9b41d5fee506b176b6826f6..bc9d566c36505668a3fd53d6745f298f7050c44b 100644
--- a/b_asic/GUI/properties_window.py
+++ b/b_asic/GUI/properties_window.py
@@ -1,7 +1,7 @@
-from PyQt5.QtWidgets import QDialog, QLineEdit, QPushButton, QVBoxLayout, QHBoxLayout,\
+from PySide2.QtWidgets import QDialog, QLineEdit, QPushButton, QVBoxLayout, QHBoxLayout,\
 QLabel, QCheckBox
-from PyQt5.QtCore import Qt
-from PyQt5.QtGui import QIntValidator
+from PySide2.QtCore import Qt
+from PySide2.QtGui import QIntValidator
 
 class PropertiesWindow(QDialog):
     def __init__(self, operation, main_window):
@@ -10,7 +10,7 @@ class PropertiesWindow(QDialog):
         self.main_window = main_window
         self.setWindowFlags(Qt.WindowTitleHint | Qt.WindowCloseButtonHint)
         self.setWindowTitle("Properties")
-        
+
         self.name_layout = QHBoxLayout()
         self.name_layout.setSpacing(50)
         self.name_label = QLabel("Name:")
diff --git a/b_asic/GUI/utils.py b/b_asic/GUI/utils.py
index 721496c7db7d0259d6335681f6a4c95c6c5930b6..4fba57ed96cb0073511125d341c2ee2ede4ad182 100644
--- a/b_asic/GUI/utils.py
+++ b/b_asic/GUI/utils.py
@@ -1,4 +1,4 @@
-from PyQt5.QtWidgets import QErrorMessage
+from PySide2.QtWidgets import QErrorMessage
 from traceback import format_exc
 
 def handle_error(fn):
diff --git a/setup.py b/setup.py
index 62ac6af204e5ca3b0a845a82e687d1f9d87166d1..94285a70c496dc08923a9a36258316e8397670c6 100644
--- a/setup.py
+++ b/setup.py
@@ -36,9 +36,9 @@ class CMakeBuild(build_ext):
 
         if not os.path.exists(self.build_temp):
             os.makedirs(self.build_temp)
-        
+
         env = os.environ.copy()
-        
+
         print(f"=== Configuring {ext.name} ===")
         print(f"Temp dir: {self.build_temp}")
         print(f"Output dir: {cmake_output_dir}")
@@ -71,7 +71,7 @@ setuptools.setup(
     install_requires = [
         "pybind11>=2.3.0",
         "numpy",
-        "install_qt_binding",
+        "pyside2",
         "graphviz"
     ],
     packages = ["b_asic"],