Code With Python
38.7K subscribers
792 photos
23 videos
21 files
718 links
This channel provides clear, practical content for developers focusing on Python, Django, data structures, algorithms, and DSA.

Admin: @Hussein_Sheikho

Ad & Earn money form your channel:
https://telega.io/?r=nikapsOH
Download Telegram
📚 Python GUI Automation for Beginners (2024)

1⃣ Join Channel Download:
https://t.iss.one/+MhmkscCzIYQ2MmM8

2⃣ Download Book: https://t.iss.one/c/1854405158/1560

💬 Tags: #GUI

👉 BEST DATA SCIENCE CHANNELS ON TELEGRAM 👈
👍43
📚 GUI Programming with Python (2024)

1⃣ Join Channel Download:
https://t.iss.one/+MhmkscCzIYQ2MmM8

2⃣ Download Book: https://t.iss.one/c/1854405158/2148

💬 Tags: #python #GUI

USEFUL CHANNELS FOR YOU
👍9🔥1
Topic: Python – Create IP Address Tracker GUI using Tkinter

---

### What You'll Build

A desktop app that allows the user to:

• Enter an IP address or domain
• Fetch geolocation data (country, city, ISP, etc.)
• Display it in a user-friendly Tkinter GUI

We'll use the requests library and a free API like ip-api.com.

---

### Step-by-Step Code

import tkinter as tk
from tkinter import messagebox
import requests

# Function to fetch IP information
def track_ip():
ip = entry.get().strip()
if not ip:
messagebox.showwarning("Input Error", "Please enter an IP or domain.")
return

try:
url = f"https://ip-api.com/json/{ip}"
response = requests.get(url)
data = response.json()

if data["status"] == "fail":
messagebox.showerror("Error", data["message"])
return

# Show info
result_text.set(
f"IP: {data['query']}\n"
f"Country: {data['country']}\n"
f"Region: {data['regionName']}\n"
f"City: {data['city']}\n"
f"ZIP: {data['zip']}\n"
f"ISP: {data['isp']}\n"
f"Timezone: {data['timezone']}\n"
f"Latitude: {data['lat']}\n"
f"Longitude: {data['lon']}"
)

except Exception as e:
messagebox.showerror("Error", str(e))

# GUI Setup
app = tk.Tk()
app.title("IP Tracker")
app.geometry("400x400")
app.resizable(False, False)

# Widgets
tk.Label(app, text="Enter IP Address or Domain:", font=("Arial", 12)).pack(pady=10)

entry = tk.Entry(app, width=40, font=("Arial", 12))
entry.pack()

tk.Button(app, text="Track IP", command=track_ip, font=("Arial", 12)).pack(pady=10)

result_text = tk.StringVar()
result_label = tk.Label(app, textvariable=result_text, justify="left", font=("Courier", 10))
result_label.pack(pady=10)

app.mainloop()


---

### Requirements

Install the requests library if not already installed:

pip install requests


---

### Exercise

• Enhance the app to export the result to a .txt or .csv file
• Add a map preview using a web view or link to Google Maps
• Add dark mode toggle for the GUI

---

#Python #Tkinter #IPTracker #Networking #GUI #DesktopApp

https://t.iss.one/DataScience4
5👍3
Code With Python
Photo
# 📚 PyQt5 Tutorial - Part 1/6: Introduction to GUI Programming
#PyQt5 #Python #GUI #BeginnerFriendly #Qt

Welcome to Part 1 of our comprehensive PyQt5 series! This lesson will introduce you to GUI development with Python and PyQt5, perfect for beginners.

---

## 🔹 What is PyQt5?
PyQt5 is a set of Python bindings for Qt (a powerful C++ GUI framework). It lets you create:
- Desktop applications
- Cross-platform GUIs
- Professional-looking interfaces
- Apps with databases, networking, and multimedia

Key Features:
✔️ 620+ classes
✔️ 6,000+ functions
✔️ Windows, Mac, Linux support
✔️ Open-source (GPL/commercial licenses)

---

## 🔹 Installation
Install PyQt5 and tools:

pip install PyQt5 PyQt5-tools


Verify Installation:
import PyQt5
print(PyQt5.__version__) # Should show version like 5.15.4


---

## 🔹 Your First PyQt5 App
Let's create a simple window:

import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget

# 1. Create the application object
app = QApplication(sys.argv)

# 2. Create main window
window = QWidget()
window.setWindowTitle("My First App")
window.setGeometry(100, 100, 400, 200) # x, y, width, height

# 3. Add a label
label = QLabel("Hello PyQt5!", parent=window)
label.move(150, 80) # x, y position

# 4. Show the window
window.show()

# 5. Run the application
sys.exit(app.exec_())


Code Breakdown:
1. QApplication: Manages app control flow
2. QWidget: Base class for all UI objects
3. QLabel: Displays text/images
4. exec_(): Starts the event loop

---

## 🔹 Core PyQt5 Components
### 1. Main Window Types
| Class | Purpose |
|-------|---------|
| QWidget | Basic empty window |
| QMainWindow | With menu bar, status bar, toolbars |
| QDialog | Popup dialog windows |

### 2. Common Widgets
from PyQt5.QtWidgets import (
QPushButton, # Clickable button
QLineEdit, # Single-line text input
QTextEdit, # Multi-line text area
QCheckBox, # Toggle option
QRadioButton, # Exclusive choice
QComboBox, # Dropdown menu
QSlider # Value selector
)


### 3. Layout Managers
from PyQt5.QtWidgets import (
QVBoxLayout, # Vertical arrangement
QHBoxLayout, # Horizontal arrangement
QGridLayout # Grid arrangement
)


---

## 🔹 Creating a Functional App
Let's build a temperature converter:
1
import sys
import csv
from PyQt5.QtWidgets import *
import database as db # Import our database module

class WarehouseApp(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Warehouse ERP System")
self.setGeometry(100, 100, 1000, 700)
db.setup_database() # Ensure tables are created

self.tabs = QTabWidget()
self.setCentralWidget(self.tabs)

# Create tabs
self.inventory_tab = QWidget()
self.purchase_tab = QWidget() # Incoming
self.sales_tab = QWidget() # Outgoing
self.production_tab = QWidget()
self.reports_tab = QWidget()

self.tabs.addTab(self.inventory_tab, "Inventory")
# Add other tabs later...

self.setup_inventory_ui()
self.load_inventory_data()

def setup_inventory_ui(self):
layout = QVBoxLayout()
# Table view
self.inventory_table = QTableWidget()
self.inventory_table.setColumnCount(4)
self.inventory_table.setHorizontalHeaderLabels(['ID', 'Name', 'Quantity', 'Price'])
self.inventory_table.setEditTriggers(QAbstractItemView.NoEditTriggers)
layout.addWidget(self.inventory_table)

# Form for adding new items
form = QFormLayout()
self.item_name = QLineEdit()
self.item_qty = QSpinBox()
self.item_qty.setRange(0, 99999)
self.item_price = QLineEdit()
form.addRow("Name:", self.item_name)
form.addRow("Quantity:", self.item_qty)
form.addRow("Price:", self.item_price)
add_btn = QPushButton("Add New Item")
add_btn.clicked.connect(self.add_item)
layout.addLayout(form)
layout.addWidget(add_btn)

self.inventory_tab.setLayout(layout)

def load_inventory_data(self):
items = db.get_inventory()
self.inventory_table.setRowCount(len(items))
for row_num, row_data in enumerate(items):
for col_num, data in enumerate(row_data):
self.inventory_table.setItem(row_num, col_num, QTableWidgetItem(str(data)))

def add_item(self):
name = self.item_name.text()
qty = self.item_qty.value()
price = float(self.item_price.text())
if not name:
QMessageBox.warning(self, "Input Error", "Item name cannot be empty.")
return
if db.add_inventory_item(name, qty, price):
self.load_inventory_data() # Refresh table
self.item_name.clear()
self.item_qty.setValue(0)
self.item_price.clear()
else:
QMessageBox.warning(self, "DB Error", f"Item '{name}' already exists.")

if __name__ == '__main__':
app = QApplication(sys.argv)
window = WarehouseApp()
window.show()
sys.exit(app.exec_())

# Hashtags: #PyQt5 #GUI #CRUD #InventoryManagement


---

#Step 3: Purchase (Incoming) and Sales (Outgoing) Tabs

We'll manage invoices. A purchase increases stock, and a sale decreases it. We need to add functions to database.py first, then build the UI.

Add to database.py:
1