To install PyQt, you will need Python 3.7 or higher.
To check python version type:
python3 version
To install PyQT6 on Mac:
pip3 install PyQt6
On windows:
pip install PyQt6
import sys
#Sys is a python specific module which provides functions
# and variables which are used to manipulate different parts of Python runtime env
# sys.exit allows us to end the execution of a program.
# from the widgets module we import the Application and Wdgets
from PyQt6.QtWidgets import QApplication,QWidget
#pyqt is a library
# qtwidgets is a module, this module contains all the UI elements hence
# it is called as qtWidgets as it contains widgets
#QApplication and QWidgets are classes
#Qapplication is responsible for managing the applications main event loop,
#widget finalisation and initialisation.
# main event loop is where user inreacts with the app.
#now let's create a window using QWidget.
# hence we create a class which inherits form the Qwidget class
class Window(QWidget):
# create a constructor
def __init__(self):
# super function is used to call the init method of the parent class
# in this case, we are calling the init method of the QWidget class
super().__init__()
#set the window properties
self.setWindowTitle("My first PyQT window")
#set geometry methods defines the location of the window on your computer
# and its dimensions
self.setGeometry(100,100,400,300) # x,y,width,height
# if you say (0,0) the window will be placed in the top left corner
# of the screen
# Create the application from above class
# Q application is used to manage applications resources and the event loop
app = QApplication(sys.argv)
# craete an instance of thw window
window = Window()
# Show method needs to be called to show the created window on screen
window.show()
#Start the event loop, use sys.exit to close the program.
sys.exit(app.exec())
import sys
# new code added
from PyQt6.QtWidgets import QApplication,QWidget,QLabel
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("My first PyQT window")
self.setGeometry(100,100,400,300) # x,y,width,height
# label created and added
label = QLabel(self)
label.setText("Hello world")
#Move method is used to arrange label on the window
label.move(50,50)
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec())
Adding an image on the window:
import sys
from PyQt6.QtGui import QPixmap
from PyQt6.QtWidgets import QApplication,QWidget,QLabel
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("My first PyQT window")
self.setGeometry(100,100,400,300) # x,y,width,height
label = QLabel(self)
label.setText("This is a car")
label.move(150,75)
#adding an image
#New code added
with open('car.png'):
image_label = QLabel(self)
pixmap = QPixmap('car.png')
image_label.setPixmap(pixmap)
image_label.move(150,85)
# Create the application from above class
# Q application is used to manage applications resources and the event loop
app = QApplication(sys.argv)
# craete an instance of the window
window = Window()
# Show method needs to be called to show the created window on screen
window.show()
#Start the event loop, use sys.exit to close the program.
sys.exit(app.exec())
#import the systems module
import sys
# it allows us to exit the app, quit the loop
# To create a pyqt app we need to access the class
# we can write function based code as well, but class based one is more suitable
# to create a window we need a widget, to create that widget we need to access the qwidget class
from PyQt6.QtWidgets import QWidget,QApplication,QLabel
#pywt6: package
#qtWidgets: module
# QWidget is class
# now create a class out of it so that it can create a widget for us
from PyQt6.QtGui import QPixmap,QFont
class Window(QWidget):
# create a constructor
def __init__(self):
#we need to call the init method of the QWidget class
super().__init__()
# now we need to set the window properties
# where are these methods comming from?
# they are comming from the QWidget class
self.setWindowTitle("My First PyQT window")
self.setGeometry(100,100,400,400)
#(x,y,width,height)
#create the label
label =QLabel(self)
label.setText("This is a car")
label.move(150,75)
#creating a label to add images
with open("audi.png"):
image_label = QLabel(self)
# create a qpizmap object
pixmap = QPixmap('audi.png')
image_label.setPixmap(pixmap)
image_label.move(50,0)
#car name
name_label = QLabel(self)
name_label.setText("My Car")
name_label.setFont(QFont("Arial",20))
name_label.move(170,170)
#Engine specs
engine_label = QLabel(self)
engine_label.setText("Engine Capacity: 4L TFSI")
engine_label.setFont(QFont("Arial",16))
engine_label.move(20,210)
#Features
features_label = QLabel(self)
features_label.setText("Features: ABS, EBD, ADAS")
features_label.setFont(QFont("Arial",16))
features_label.move(20,240)
# Models
models_label = QLabel(self)
models_label.setText("Models: 2.2 Petrol, 1.8 Diesel")
models_label.setFont(QFont("Arial",16))
models_label.move(20,270)
#Pricing
pricing_label = QLabel(self)
pricing_label.setText("$80,184")
pricing_label.setFont(QFont("Arial",16))
pricing_label.move(20,300)
# now once we have defined a class, we need to create an instance of the above class
# first we create the application's main loop
app = QApplication(sys.argv)
# create instance of the window
window = Window()
window.show()
#close the event loop
sys.exit(app.exec())
Printing text in console when button is clicked:
import sys
from PyQt6.QtGui import QPixmap,QFont
from PyQt6.QtWidgets import QApplication,QWidget,QLabel,QPushButton
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("My first PyQT window")
self.setGeometry(100,100,300,400) # x,y,width,height
# new code added to create a button
button = QPushButton(self)
button.setText("Click me")
button.move(100,200)
button.clicked.connect(self.buttonClicked)
def buttonClicked(self):
print("Button is clicked")
# Create the application from above class
# Q application is used to manage applications resources and the event loop
app = QApplication(sys.argv)
# craete an instance of the window
window = Window()
# Show method needs to be called to show the created window on screen
window.show()
#Start the event loop, use sys.exit to close the program.
sys.exit(app.exec())
import sys
from PyQt6.QtGui import QPixmap,QFont
from PyQt6.QtWidgets import QApplication,QWidget,QLabel,QPushButton
class Window(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.count =0
self.setWindowTitle("My first PyQT window")
self.setGeometry(100,100,300,400) # x,y,width,height
# new code added to create a button
button = QPushButton(self)
button.setText("Click me")
button.move(100,200)
button.clicked.connect(self.buttonClicked)
# label to display count value
self.label = QLabel(self)
self.label.setText("0")
self.label.move(100,150)
def buttonClicked(self):
print("Button is clicked")
self.count +=1
self.label.setText(str(self.count))
self.label.adjustSize()
# Create the application from above class
# Q application is used to manage applications resources and the event loop
app = QApplication(sys.argv)
# craete an instance of the window
window = Window()
# Show method needs to be called to show the created window on screen
window.show()
#Start the event loop, use sys.exit to close the program.
sys.exit(app.exec())
import sys
from PyQt6.QtGui import QPixmap,QFont
from PyQt6.QtWidgets import QApplication,QWidget,QLabel,QPushButton,QLineEdit
class Window(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("My first PyQT window")
self.setMaximumSize(300,200) #width,height
name_label = QLabel(self)
name_label.setText("Enter your name")
name_label.move(60,10)
self.name = QLineEdit(self)
# sets the size of the input field
self.name.resize(200,20)
self.name.move(60,50)
button = QPushButton(self)
button.setText("Add")
button.move(200,80)
button.clicked.connect(self.buttonClicked)
self.result_label = QLabel(self)
self.result_label.setFixedSize(150,20)
self.result_label.move(60,120)
def buttonClicked(self):
print("Button is clicked")
print("Your name is:"+self.name.text())
self.result_label.setText("Your name is: "+ self.name.text())
# Create the application from above class
# Q application is used to manage applications resources and the event loop
app = QApplication(sys.argv)
# craete an instance of the window
window = Window()
# Show method needs to be called to show the created window on screen
window.show()
#Start the event loop, use sys.exit to close the program.
sys.exit(app.exec())
import sys
from PyQt6.QtWidgets import QApplication,QWidget,QLabel,QPushButton,QLineEdit,QMainWindow
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("Simple Calculator")
self.setGeometry(100, 100, 400, 150) # Increased the window width
self.num1_label = QLabel("Enter first number:", self)
self.num1_label.resize(200,20)
self.num1_label.move(20, 20)
self.num1_input = QLineEdit(self)
self.num1_input.move(200, 20)
self.num2_label = QLabel("Enter second number:", self)
self.num2_label.resize(200,20)
self.num2_label.move(20, 60) # Adjusted the Y position
self.num2_input = QLineEdit(self)
self.num2_input.move(200, 60) # Adjusted the X position
self.result_label = QLabel("Result:", self)
self.result_label.move(20, 100) # Adjusted the Y position
self.calculate_button = QPushButton("Calculate", self)
self.calculate_button.move(200, 100) # Adjusted the X position
self.calculate_button.clicked.connect(self.calculate_sum)
def calculate_sum(self):
try:
num1 = float(self.num1_input.text())
num2 = float(self.num2_input.text())
result = num1 + num2
self.result_label.setText(f"Result: {result:.2f}")
except ValueError:
self.result_label.setText("Invalid input. Please enter numbers.")
# Create the application from above class
# Q application is used to manage applications resources and the event loop
app = QApplication(sys.argv)
# craete an instance of the window
window = Window()
# Show method needs to be called to show the created window on screen
window.show()
#Start the event loop, use sys.exit to close the program.
sys.exit(app.exec())
import sys
from PyQt6.QtWidgets import QApplication,QWidget,QLabel,QPushButton,QLineEdit,QMainWindow
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("Simple Calculator")
self.setGeometry(100, 100, 400, 150) # Increased the window width
self.num1_label = QLabel("Enter first number:", self)
self.num1_label.resize(200,20)
self.num1_label.move(20, 20)
self.num1_input = QLineEdit(self)
self.num1_input.move(200, 20)
self.num2_label = QLabel("Enter second number:", self)
self.num2_label.resize(200,20)
self.num2_label.move(20, 60) # Adjusted the Y position
self.num2_input = QLineEdit(self)
self.num2_input.move(200, 60) # Adjusted the X position
self.result_label = QLabel("Result:", self)
self.result_label.move(20, 100) # Adjusted the Y position
self.calculate_button = QPushButton("Calculate", self)
self.calculate_button.move(200, 100) # Adjusted the X position
self.calculate_button.clicked.connect(self.calculate_sum)
def calculate_sum(self):
try:
num1 = float(self.num1_input.text())
num2 = float(self.num2_input.text())
result = num1 + num2
self.result_label.setText(f"Result: {result:.2f}")
except ValueError:
self.result_label.setText("Invalid input. Please enter numbers.")
# Create the application from above class
# Q application is used to manage applications resources and the event loop
app = QApplication(sys.argv)
# craete an instance of the window
window = Window()
# Show method needs to be called to show the created window on screen
window.show()
#Start the event loop, use sys.exit to close the program.
sys.exit(app.exec())
import sys
from PyQt6.QtWidgets import QApplication,QWidget,QLabel,QPushButton,QCheckBox,QMainWindow
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("Coffee Maker")
self.setGeometry(100, 100, 400, 150) # Increased the window width
# Total cost of the drink
self.total_cost = 0
label = QLabel(self)
label.setText("Select your options")
label.resize(200,20)
label.move(20,20)
# add checkboxes here
sugar_checkbox = QCheckBox(self)
sugar_checkbox.setText("Sugar ($ 0.5)")
sugar_checkbox.move(20,40)
sugar_checkbox.toggled.connect(self.sugar_checked)
# add checkboxes here
milk_checkbox = QCheckBox(self)
milk_checkbox.setText("Sugar ($ 1)")
milk_checkbox.move(20,60)
milk_checkbox.toggled.connect(self.milk_checked)
#label
self.label = QLabel(self)
self.label.setText(str("Total cost: $0"))
self.label.resize(200,20)
self.label.move(20,90)
def sugar_checked(self,checked):
if checked:
self.total_cost +=0.5
self.label.setText("Total cost: $"+str(self.total_cost))
else:
self.total_cost -=0.5
self.label.setText("Total cost: $"+str(self.total_cost))
def milk_checked(self,checked):
if checked:
self.total_cost +=1
self.label.setText("Total cost: $"+str(self.total_cost))
else:
self.total_cost -=1
self.label.setText("Total cost: $"+str(self.total_cost))
# Create the application from above class
# Q application is used to manage applications resources and the event loop
app = QApplication(sys.argv)
# craete an instance of the window
window = Window()
# Show method needs to be called to show the created window on screen
window.show()
#Start the event loop, use sys.exit to close the program.
sys.exit(app.exec())
import sys
from PyQt6.QtWidgets import QApplication,QWidget,QLabel,QPushButton,QMessageBox,QMainWindow
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("Coffee Maker")
self.setGeometry(100, 100, 400, 150) # Increased the window width
self.button = QPushButton("Show MessageBox", self)
self.button.setGeometry(150, 80, 200, 40)
self.button.clicked.connect(self.show_message_box)
def show_message_box(self):
msg = QMessageBox()
msg.setWindowTitle("Message Box Title")
msg.setText("This is a simple QMessageBox.")
msg.setIcon(QMessageBox.Icon.Information)
msg.setStandardButtons(QMessageBox.StandardButton.Ok | QMessageBox.StandardButton.Cancel)
msg.setDefaultButton(QMessageBox.StandardButton.Ok)
result = msg.exec()
if result == QMessageBox.StandardButton.Ok:
print("OK button clicked")
else:
print("Cancel button clicked")
# Create the application from above class
# Q application is used to manage applications resources and the event loop
app = QApplication(sys.argv)
# craete an instance of the window
window = Window()
# Show method needs to be called to show the created window on screen
window.show()
#Start the event loop, use sys.exit to close the program.
sys.exit(app.exec())
import sys
import math
from PyQt6.QtWidgets import QApplication,QWidget,QLabel,QPushButton,QLineEdit,QMessageBox,QMainWindow
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("Coffee Maker")
self.setGeometry(100, 100, 400, 150) # Increased the window width
self.number_label = QLabel("Enter a number:", self)
self.number_label.move(20, 20)
self.number_input = QLineEdit(self)
self.number_input.move(200, 20)
self.calculate_button = QPushButton("Find Root", self)
self.calculate_button.move(200, 60)
self.result_label = QLabel("Result:", self)
self.result_label.move(20, 100)
self.calculate_button.clicked.connect(self.calculate_square_root)
def calculate_square_root(self):
try:
number = float(self.number_input.text())
if number >= 0:
square_root = math.sqrt(number)
if square_root.is_integer():
self.result_label.setText(f"Square Root: {square_root:.4f}")
else:
QMessageBox.warning(self, "Not a Perfect Square", "The number is not a perfect square.")
else:
QMessageBox.warning(self, "Invalid Input", "Number must be non-negative.")
except ValueError:
QMessageBox.warning(self, "Invalid Input", "Please enter a valid number.")
# Create the application from above class
# Q application is used to manage applications resources and the event loop
app = QApplication(sys.argv)
# craete an instance of the window
window = Window()
# Show method needs to be called to show the created window on screen
window.show()
#Start the event loop, use sys.exit to close the program.
sys.exit(app.exec())
import sys
import math
from PyQt6.QtWidgets import QWidget,QApplication,QHBoxLayout,QLabel,QPushButton,QLineEdit,QMessageBox,QMainWindow
class Window(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("Coffee Maker")
self.setGeometry(100, 100, 400, 150) # Increased the window width
label = QLabel()
label.setText("Name")
edit = QLineEdit()
button = QPushButton("Add")
# Create the layout and add widgets to it
layout = QHBoxLayout()
layout.addWidget(label)
layout.addWidget(edit)
layout.addWidget(button)
# Add the above layout to our main window
self.setLayout(layout)
# Create the application from above class
# Q application is used to manage applications resources and the event loop
app = QApplication(sys.argv)
# craete an instance of the window
window = Window()
# Show method needs to be called to show the created window on screen
window.show()
#Start the event loop, use sys.exit to close the program.
sys.exit(app.exec())
import sys
import math
from PyQt6.QtWidgets import QVBoxLayout, QWidget,QApplication,QHBoxLayout,QLabel,QPushButton,QLineEdit,QMessageBox,QMainWindow
class Window(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("Coffee Maker")
self.setGeometry(100, 100, 400, 150) # Increased the window width
button1 = QPushButton("Button 1")
button2 = QPushButton("Button 2")
button3 = QPushButton("Button 3")
button4 = QPushButton("Button 4")
hbox_1 = QHBoxLayout()
hbox_1.addWidget(button1)
hbox_1.addWidget(button2)
hbox_2 = QHBoxLayout()
hbox_2.addWidget(button3)
hbox_2.addWidget(button4)
vbox = QVBoxLayout()
vbox.addLayout(hbox_1)
vbox.addLayout(hbox_2)
self.setLayout(vbox)
# Create the application from above class
# Q application is used to manage applications resources and the event loop
app = QApplication(sys.argv)
# craete an instance of the window
window = Window()
# Show method needs to be called to show the created window on screen
window.show()
#Start the event loop, use sys.exit to close the program.
sys.exit(app.exec())
import sys
import math
from PyQt6.QtWidgets import QGridLayout, QWidget,QApplication,QHBoxLayout,QLabel,QPushButton,QLineEdit,QMessageBox,QMainWindow
class Window(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("Coffee Maker")
self.setGeometry(100, 100, 400, 150) # Increased the window width
# Create widgets
label1 = QLabel("Label 1")
label2 = QLabel("Label 2")
label3 = QLabel("Label 3")
button1 = QPushButton("Button 1")
button2 = QPushButton("Button 2")
button3 = QPushButton("Button 3")
# Create a grid layout and set it as the layout for the window
layout = QGridLayout()
self.setLayout(layout)
# Add widgets to the layout at specific positions
layout.addWidget(label1, 0, 0)
layout.addWidget(label2, 0, 1)
layout.addWidget(label3, 0, 2)
layout.addWidget(button1, 1, 0)
layout.addWidget(button2, 1, 1)
layout.addWidget(button3, 1, 2)
# Create the application from above class
# Q application is used to manage applications resources and the event loop
app = QApplication(sys.argv)
# craete an instance of the window
window = Window()
# Show method needs to be called to show the created window on screen
window.show()
#Start the event loop, use sys.exit to close the program.
sys.exit(app.exec())