ایجاد یک اپلیکیشن اندرویدی قرآن با استفاده از پایتون نیازمند استفاده از کتابخانه Kivy و ابزارهای مرتبط برای پخش صوت و نمایش متن است. در اینجا مراحل ساخت یک اپلیکیشن ساده ارائه میشود:
---
### قابلیتهای اپلیکیشن:
1. نمایش متن آیات قرآن.
2. قابلیت جستجو در آیات.
3. پخش صوت ترتیل یا تلاوت.
4. رابط کاربری ساده و زیبا.
---
### کد نمونه:
#### نصب پیشنیازها:
bash
pip install kivy kivymd requests
#### فایل main.py:
python
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.core.audio import SoundLoader
import requests
class QuranApp(App):
def build(self):
self.base_url = "https://api.alquran.cloud/v1/" # API قرآن
self.current_audio = None
layout = BoxLayout(orientation="vertical")
# Text input for surah number
self.surah_input = TextInput(hint_text="Enter Surah number (1-114)", multiline=False)
layout.add_widget(self.surah_input)
# Button to fetch surah text
fetch_button = Button(text="Fetch Surah")
fetch_button.bind(on_press=self.fetch_surah)
layout.add_widget(fetch_button)
# Label to display surah text
self.surah_label = Label(text="Surah content will appear here", halign="center", valign="middle")
layout.add_widget(self.surah_label)
# Button to play audio
play_button = Button(text="Play Audio")
play_button.bind(on_press=self.play_audio)
layout.add_widget(play_button)
return layout
def fetch_surah(self, instance):
surah_number = self.surah_input.text.strip()
if surah_number.isdigit() and 1 <= int(surah_number) <= 114:
response = requests.get(f"{self.base_url}surah/{surah_number}/en.asad")
if response.status_code == 200:
data = response.json()
surah_text = "\n".join(ayah["text"] for ayah in data["data"]["ayahs"])
self.surah_label.text = surah_text
self.audio_url = data["data"]["ayahs"][0]["audio"]
else:
self.surah_label.text = "Failed to fetch Surah. Try again."
else:
self.surah_label.text = "Please enter a valid Surah number."
def play_audio(self, instance):
if hasattr(self, "audio_url") and self.audio_url:
if self.current_audio:
self.current_audio.stop()
self.current_audio = SoundLoader.load(self.audio_url)
if self.current_audio:
self.current_audio.play()
else:
self.surah_label.text = "No audio available. Fetch a Surah first."
if __name__ == "__main__":
QuranApp().run()
---
### توضیحات:
1. دریافت متن آیات:
از API رایگان مثل [alquran.cloud](https://alquran.cloud) برای دریافت متن آیات استفاده شده است.
2. پخش صوت:
صوت آیات از لینک ارائهشده توسط API پخش میشود.
3. رابط کاربری:
با استفاده از Kivy طراحیشده و امکان دریافت شماره سوره و نمایش متن آن را فراهم میکند.
---
### تبدیل به APK:
1. نصب Buildozer:
bash
pip install buildozer
2. ایجاد فایل تنظیمات Buildozer:
bash
buildozer init
3. تولید فایل APK:
bash
buildozer -v android debug
---
### ویژگیهای اضافی:
- حفظ سورههای منتخب: میتوانید دادههای منتخب را در یک فایل ذخیره کنید.
- افزودن ترجمههای دیگر: با استفاده از پارامترهای API.
- بهبود رابط کاربری: استفاده از KivyMD برای رابط کاربری زیباتر.
این برنامه ساده، پایهای برای توسعه یک اپلیکیشن قرآن پیشرفتهتر است.
برای ساخت یک ساعت آنالوگ زیبا در پایتون، میتوان از کتابخانه Tkinter برای رابط گرافیکی و math برای محاسبات دایرهای استفاده کرد.
در اینجا کدی برای یک ساعت آنالوگ ارائه میشود:
---
### کد ساعت آنالوگ:
python
import tkinter as tk
import time
import math
class AnalogClock(tk.Tk):
def __init__(self):
super().__init__()
self.title("Analog Clock")
self.geometry("400x400")
self.resizable(False, False)
self.canvas = tk.Canvas(self, width=400, height=400, bg="white")
self.canvas.pack()
self.center_x = 200
self.center_y = 200
self.clock_radius = 150
self.draw_clock_face()
self.update_clock()
def draw_clock_face(self):
# Draw the clock circle
self.canvas.create_oval(
self.center_x - self.clock_radius,
self.center_y - self.clock_radius,
self.center_x + self.clock_radius,
self.center_y + self.clock_radius,
fill="lightblue", outline="black", width=3
)
# Draw hour markers
for hour in range(1, 13):
angle = math.radians(hour * 30 - 90)
x1 = self.center_x + math.cos(angle) * (self.clock_radius - 20)
y1 = self.center_y + math.sin(angle) * (self.clock_radius - 20)
x2 = self.center_x + math.cos(angle) * (self.clock_radius - 10)
y2 = self.center_y + math.sin(angle) * (self.clock_radius - 10)
self.canvas.create_line(x1, y1, x2, y2, width=2)
def update_clock(self):
self.canvas.delete("hands")
now = time.localtime()
hour = now.tm_hour % 12
minute = now.tm_min
second = now.tm_sec
# Calculate angles for hour, minute, and second hands
hour_angle = math.radians((hour + minute / 60) * 30 - 90)
minute_angle = math.radians((minute + second / 60) * 6 - 90)
second_angle = math.radians(second * 6 - 90)
# Hour hand
self.draw_hand(hour_angle, self.clock_radius * 0.5, width=6, color="black")
# Minute hand
self.draw_hand(minute_angle, self.clock_radius * 0.7, width=4, color="blue")
# Second hand
self.draw_hand(second_angle, self.clock_radius * 0.9, width=2, color="red")
# Redraw every 100ms
self.after(1000, self.update_clock)
def draw_hand(self, angle, length, width, color):
x = self.center_x + math.cos(angle) * length
y = self.center_y + math.sin(angle) * length
self.canvas.create_line(self.center_x, self.center_y, x, y, width=width, fill=color, tags="hands")
if __name__ == "__main__":
clock = AnalogClock()
clock.mainloop()
---
### توضیحات کد:
1. رسم صفحه ساعت:
دایره ساعت و نشانگرهای ساعت (1 تا 12) روی دایره رسم شدهاند.
2. محاسبه زاویهها:
زاویه هر عقربه با استفاده از موقعیت فعلی ساعت، دقیقه و ثانیه محاسبه میشود:
- عقربه ساعت:
(hour + minute / 60) * 30- عقربه دقیقه:
(minute + second / 60) * 6- عقربه ثانیه:
second * 63. بهروزرسانی هر ثانیه: از تابع self.after برای بهروزرسانی عقربهها هر 1000 میلیثانیه استفاده شده است. --- ### نتیجه: این کد یک ساعت آنالوگ زیبا را در یک پنجره ایجاد میکند که بهطور خودکار زمان فعلی را نمایش میدهد و عقربههای آن حرکت میکنند.
فعلا قابلیت پخش رسانه در مرورگر فراهم نیست
مشاهده در پیام رسان ایتا
🔻 طراحی جدول مسابقات ورزشی و برنامه بازی های ورزشی توسط هوش مصنوعی
https://www.aparat.com/v/xaw82q7
🔻 تهیه کننده : احمدی
🔻 پژوهشسرای مقیدنیا
@moallem1404
هدایت شده از 🇮🇷🇮🇶🇱🇧خبر کــوتـاه🇾🇪🇵🇸🇮🇷
از پیرمرد کتاب فروش پرسیدند چرا وقتی نیستی در کتاب فروشی را نمیبندی؟
گفت: آنها که کتاب نمیخوانند کتاب نمیدزدند
و آنها که کتاب میخوانند دزدی نمیکنند.
#زیبا👌🏻
@khabarekotahh
فعلا قابلیت پخش رسانه در مرورگر فراهم نیست
مشاهده در پیام رسان ایتا
آموزش تجوید استاد موسوی بلده درس ( 2 ) #حرف_حاء_
💢حرف حاء حرفی حلقی و با گرفتی همراه است.
فعلا قابلیت پخش رسانه در مرورگر فراهم نیست
مشاهده در پیام رسان ایتا
آموزش تجوید استاد موسوی بلده درس ( 3 ) #حرف_ذال_
هدایت شده از KHAMENEI.IR
11.63M حجم رسانه بالاست
مشاهده در ایتا
📣 نماهنگ جدید KHAMENEI.IR بهمناسبت روز پژوهش
📹 بهبود زندگی با علم نافع
✏️ رهبر انقلاب: یقیناً یکی از پایههای مهمّ هر تمدّنی علم است -علم نافع- و ما که تکرار میکنیم «تمدّن نوین اسلامی»، قطعاً یکی از پایههایش پیشرفت علمی است.
✏️ این جوان بتواند از این دانش، برای بهبود زندگی خود و جامعهاش و پیرامونیانِ خود استفاده کند؛ #علم_نافع این است.
💻 Farsi.Khamenei.ir
هدایت شده از اخبار مشهد
9.84M حجم رسانه بالاست
مشاهده در ایتا
🔸حال و هوای دوست داشتنی کوهسنگی
@AkhbarMashhad
هدایت شده از اخبار آموزش و پرورش
نکات_241216_160024.pdf
337K
✅ اینفوگرافیك نكات مهم ثبت نام آزمون سراسری سال 1404( نوبت اول )
🆔 @a_p_news