Asistan Sürüm 3 (Arayüzlü)

Bir meraktır ya içinizi kaplayan benim de merakım bu asistanlar. Çünkü kompleksler. Kompleks yapılar benim ilgimi çekmekte. Neyse lafı uzatmayalım. Projemin ara yüzlü olması gerektiğini söyleyen @Gencay a ardından bu projede benden çok hatta bilgi olarak daha çok yardımı dokunan @Unnick e teşekkürlerimi iletirim. Ayrıca bana bunun gibi şeyler yazabilmeyi öğreten hatalarıma çözüm bulan YazBel Ailesine teşşekkür ederim.

Biliyorum bu biraz resmi oldu ama ilk defa güzel bir şey yaptım gerçi her ne kadar göreceli olsa da.

Ana Kodlar

import datetime
import webbrowser
from PyQt5.QtCore import *
from PyQt5.QtWidgets import*
from ses_tasarım import Ui_MainWindow 


class a(QMainWindow,Ui_MainWindow):


    def __init__(self):
        super().__init__()

        self.setupUi(self)
        self.label_1.setText("Ne Yapmak İstersiniz\nFonksiyonlar(Arama,\nMüzik,Saat,Lig,Hava,Kapat,Takvim\nÇeviri,Hesap Makinesi,Youtube,Wikipedia)")
        self.label_2.setText("Fonksiyonlar \n(Arama,Müzik,Saat,Lig,Hava.Kapat,\nTakvim,Çeviri,Hesap Makinesi,Youtube,Wikipedia)")
        
        self.lineEdit_1.textEdited.connect(self.fonksiyon)
        self.lineEdit_1.setText("")
        self.lineEdit_2.hide()

    def arama_fonksiyonu(self):
        if self.text =="arama":
            self.text2 = self.lineEdit_2.text().lower()
            url = "https://www.google.com/search?q=" + self.text2
            webbrowser.get().open(url)
        

    def music_fonksiyonu(self):
        if self.text =="müzik":
            self.text2 = self.lineEdit_2.text().lower()
            if self.text2 =="spotify":
                webbrowser.open("https://www.spotify.com/tr")
            elif self.text2 =="youtube müzik":
                webbrowser.open("https://music.youtube.com")

    def hava_fonksiyonu(self):
        if self.text =="hava":
            self.text2 = self.lineEdit_2.text().lower()
            url_a = "https://www.mgm.gov.tr/tahmin/il-ve-ilceler.aspx?il=" + self.text2
            webbrowser.get().open(url_a)
        

    def youtube_fonksiyonu(self):
        if self.text=="youtube":
            self.text2 = self.lineEdit_2.text().lower()
            url_4 = "https://www.youtube.com/results?search_query=" + self.text2
            webbrowser.get().open(url_4)
        

    def wikipedia_fonksiyonu(self):
        if self.text=="wikipedia":
            self.text2 = self.lineEdit_2.text().lower()
            url_1 = "https://tr.wikipedia.org/w/index.php?search={}&title=%C3%96zel%3AAra&go=Git".format(self.text2)
            webbrowser.get().open(url_1)


    def fonksiyon(self):
        self.text = self.lineEdit_1.text().lower()
        
        if self.text =="arama":
            self.label_1.setText("Ne Aramak İstersin")
            self.lineEdit_2.show()
            self.lineEdit_2.editingFinished.connect(self.arama_fonksiyonu)

        elif self.text =="müzik":
            self.lineEdit_2.show()
            self.label_1.setText("Spotify mı Youtube Müzik mi")
            self.lineEdit_2.editingFinished.connect(self.music_fonksiyonu)
    

        elif self.text =="saat":
            self.lineEdit_2.hide()
            an = datetime.datetime.now()
            tarih = datetime.datetime.ctime(an)
            self.label_1.setText(tarih)

        elif self.text =="lig":
            self.lineEdit_2.hide()
            webbrowser.open("https://www.tff.org/default.aspx?pageID=198")

        elif self.text =="hava":
            self.label_1.setText("Hangi İlde Bulunmaktasınız: ")
            self.lineEdit_2.show()
            self.lineEdit_2.editingFinished.connect(self.hava_fonksiyonu)

        elif self.text=="kapat":
            self.lineEdit_2.hide()
            quit()

        elif self.text=="takvim":
            self.lineEdit_2.hide()
            webbrowser.open("http://takvim.ufgu.com/")

        elif self.text=="çeviri":
            self.lineEdit_2.hide()
            webbrowser.open("https://translate.google.com")

        elif self.text=="hesap makinesi":
            self.lineEdit_2.hide()
            webbrowser.open("https://www.google.com/search?q=hesap+makinesi&oq=hesap+makinesi&aqs=chrome..69i57j35i39j0j0i433j0l3j5.2488j0j7&sourceid=chrome&ie=UTF-8")

        elif self.text=="youtube":
            self.label_1.setText("Ne Arayacaksınız")
            self.lineEdit_2.show()
            self.lineEdit_2.editingFinished.connect(self.youtube_fonksiyonu)
            

        elif self.text=="wikipedia":
            self.label_1.setText("Ne Arayacaksınız")
            self.lineEdit_2.show()
            self.lineEdit_2.editingFinished.connect(self.wikipedia_fonksiyonu)


        else:
            self.lineEdit_2.hide()
            self.label_1.setText("Yanlış Değer Girdiniz..")




uygulama = QApplication([])
pencere = a()
pencere.show()
uygulama.exec_()

Tasarım Kodları

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(850, 798)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/icons/jarviss.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        MainWindow.setWindowIcon(icon)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.Main_Frame = QtWidgets.QFrame(self.centralwidget)
        self.Main_Frame.setGeometry(QtCore.QRect(-10, 0, 1011, 801))
        self.Main_Frame.setStyleSheet("#Main_Frame{\n"
"    background-color:rgb(100,100,100)\n"
"}")
        self.Main_Frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.Main_Frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.Main_Frame.setObjectName("Main_Frame")
        self.assistant_block = QtWidgets.QGroupBox(self.Main_Frame)
        self.assistant_block.setGeometry(QtCore.QRect(50, 50, 681, 211))
        self.assistant_block.setStyleSheet("#assistant_block {\n"
"    border:3px solid;\n"
"    border-radius:40px;\n"
"}")
        self.assistant_block.setTitle("")
        self.assistant_block.setObjectName("assistant_block")
        self.label_1 = QtWidgets.QLabel(self.assistant_block)
        self.label_1.setGeometry(QtCore.QRect(10, 0, 671, 201))
        self.label_1.setStyleSheet("font-size:25px;\n"
"color:white;")
        self.label_1.setText("")
        self.label_1.setObjectName("label_1")
        self.lineEdit_1 = QtWidgets.QLineEdit(self.Main_Frame)
        self.lineEdit_1.setGeometry(QtCore.QRect(80, 500, 641, 141))
        self.lineEdit_1.setStyleSheet("border:3px solid;\n"
"border-radius:40px;\n"
"padding-left:200px;\n"
"font-size:20px;\n"
"color:black;\n"
"\n"
"")
        self.lineEdit_1.setText("")
        self.lineEdit_1.setPlaceholderText("")
        self.lineEdit_1.setCursorMoveStyle(QtCore.Qt.LogicalMoveStyle)
        self.lineEdit_1.setClearButtonEnabled(True)
        self.lineEdit_1.setObjectName("lineEdit_1")
        self.label_2 = QtWidgets.QLabel(self.Main_Frame)
        self.label_2.setGeometry(QtCore.QRect(50, 260, 701, 161))
        self.label_2.setStyleSheet("border:3px solid;\n"
"border-radius:40px;\n"
"font-size:25px;\n"
"color:white;")
        self.label_2.setText("")
        self.label_2.setObjectName("label_2")
        self.lineEdit_2 = QtWidgets.QLineEdit(self.Main_Frame)
        self.lineEdit_2.setGeometry(QtCore.QRect(80, 640, 661, 101))
        self.lineEdit_2.setStyleSheet("border:3px solid;\n"
"border-radius:40px;\n"
"font-size:16px;\n"
"color:black;\n"
"\n"
"")
        self.lineEdit_2.setClearButtonEnabled(True)
        self.lineEdit_2.setObjectName("lineEdit_2")
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Jarvis"))
        self.lineEdit_1.setWhatsThis(_translate("MainWindow", "<html><head/><body><p>A</p></body></html>"))
        self.lineEdit_2.setPlaceholderText(_translate("MainWindow", "Burası Arama,Youtube,Wikpedia,Müzik ve Hava Fonksiyonuna cevap vereceğiniz kısımdır"))

import icon_rc
2 Beğeni

Dipnot: lineEditlerin kenarlarındaki silme butonlarını kullanınız kullanmasanız olur da istemediğiniz şeyler karşınıza çıkmasın diye koydum

1 Beğeni

acaba dosyayı neden bir github hesabında paylaşmadın daha kolay indirirdik

1 Beğeni

Hava durumunu sorguladığımda birden fazla pencere açıyor bunu düzeltirseniz iyi olur.

Bu arada yazıyı anlık olarak kontrol ediyor olması da programa farklı bir hava katmış bu yönünü beğendim daha kullanışlı olmuş. :+1:

self.text2 = self.lineEdit_2.text().lower()
Buradaki lower komutu ne işe yarıyor?

Bu tarz soruları internette aratmanız daha doğrudur. Çünkü karmaşık vs. değiller. Sadece aratıp basit bir şekilde sonuç alabilirsiniz.




Kısacası ben cevaplayacak olursam, lower fonksiyonu dediğimiz fonksiyon, karakterleri küçültmeye yarıyor.

print("BEN BÜYÜK KARAKTERLERE SAHİP BİR YAZIYIM".lower())

çıktı --> ben büyük karakterlere sahip bir yazıyım

1 Beğeni

tam olarak ne yapmaktasınız enter a mı basıyorsunuz

eğer enter a basıyorsanız basmayın alt+tab diyin sorun çözülecektir yazıyı algılamasında olağan problemlere karşın yazı yazdığınız bölümde x var zaten onları kullanabilirsiniz.

abim bundan 1 ay önce github kullanmayı bilmiyordum

o zaman şimdi yayınlayabilirsin bir hesap aç emailin vardır dimi

Programlama dilleri gibi GitHub kullanmayı da internetten öğrenebilirsiniz.

Gereği yok

neyin gereği yok indirmek isteyen herkes bunu copy paste mi yapacak o zaman bu program çok kullanılmaz ki

Zaten profesyonel bir şey değilki

Merhaba ;
Ben çalıştıramadım. python bilgim “Merhaba dünya kadar”
iki ayrı dosya olarak mı kaydedilecek ?
öyle ise dosya adları nedir ?

burada ses_tasarım adlı bir dosya var ses_tasarım adlı dosya diğer dosya yani bu dosya

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(850, 798)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/icons/jarviss.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        MainWindow.setWindowIcon(icon)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.Main_Frame = QtWidgets.QFrame(self.centralwidget)
        self.Main_Frame.setGeometry(QtCore.QRect(-10, 0, 1011, 801))
        self.Main_Frame.setStyleSheet("#Main_Frame{\n"
"    background-color:rgb(100,100,100)\n"
"}")
        self.Main_Frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.Main_Frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.Main_Frame.setObjectName("Main_Frame")
        self.assistant_block = QtWidgets.QGroupBox(self.Main_Frame)
        self.assistant_block.setGeometry(QtCore.QRect(50, 50, 681, 211))
        self.assistant_block.setStyleSheet("#assistant_block {\n"
"    border:3px solid;\n"
"    border-radius:40px;\n"
"}")
        self.assistant_block.setTitle("")
        self.assistant_block.setObjectName("assistant_block")
        self.label_1 = QtWidgets.QLabel(self.assistant_block)
        self.label_1.setGeometry(QtCore.QRect(10, 0, 671, 201))
        self.label_1.setStyleSheet("font-size:25px;\n"
"color:white;")
        self.label_1.setText("")
        self.label_1.setObjectName("label_1")
        self.lineEdit_1 = QtWidgets.QLineEdit(self.Main_Frame)
        self.lineEdit_1.setGeometry(QtCore.QRect(80, 500, 641, 141))
        self.lineEdit_1.setStyleSheet("border:3px solid;\n"
"border-radius:40px;\n"
"padding-left:200px;\n"
"font-size:20px;\n"
"color:black;\n"
"\n"
"")
        self.lineEdit_1.setText("")
        self.lineEdit_1.setPlaceholderText("")
        self.lineEdit_1.setCursorMoveStyle(QtCore.Qt.LogicalMoveStyle)
        self.lineEdit_1.setClearButtonEnabled(True)
        self.lineEdit_1.setObjectName("lineEdit_1")
        self.label_2 = QtWidgets.QLabel(self.Main_Frame)
        self.label_2.setGeometry(QtCore.QRect(50, 260, 701, 161))
        self.label_2.setStyleSheet("border:3px solid;\n"
"border-radius:40px;\n"
"font-size:25px;\n"
"color:white;")
        self.label_2.setText("")
        self.label_2.setObjectName("label_2")
        self.lineEdit_2 = QtWidgets.QLineEdit(self.Main_Frame)
        self.lineEdit_2.setGeometry(QtCore.QRect(80, 640, 661, 101))
        self.lineEdit_2.setStyleSheet("border:3px solid;\n"
"border-radius:40px;\n"
"font-size:16px;\n"
"color:black;\n"
"\n"
"")
        self.lineEdit_2.setClearButtonEnabled(True)
        self.lineEdit_2.setObjectName("lineEdit_2")
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Jarvis"))
        self.lineEdit_1.setWhatsThis(_translate("MainWindow", "<html><head/><body><p>A</p></body></html>"))
        self.lineEdit_2.setPlaceholderText(_translate("MainWindow", "Burası Arama,Youtube,Wikpedia,Müzik ve Hava Fonksiyonuna cevap vereceğiniz kısımdır"))

import icon_rc

Ayrıca ses_tasarım dosyasını diğer kodla aynı dizinde çalıştırın

Teşekkür ederim ;
arsiv.py
ses_tasarim.py olarak kaydettim hatalar azaldı.
Şimdi daha büyük sorunum var.
Anaconda3 kurulu ve PyQt5 kütüpanesini bulamıyor. Anaconda3 te pyqt

Hata nedir?

Merhaba;

@Gencay ilgine teşekkür ederim.

Sanırım Anaconda3 kurulumu sırasında yaptığım bir hatadan.

Konsol çıktısı:

PS C:\Users\user\Documents\arsiv> & C:/Users/user/anaconda3/python.exe c:/Users/user/Documents/arsiv/ses_tasarim.py
Traceback (most recent call last):
File “c:/Users/user/Documents/arsiv/ses_tasarim.py”, line 1, in
from PyQt5 import QtCore, QtGui, QtWidgets
ImportError: DLL load failed while importing QtCore: Belirtilen modül bulunamadı.
PS C:\Users\user\Documents\arsiv> & C:/Users/user/anaconda3/python.exe c:/Users/user/Documents/arsiv/ses_tasarim.py
Traceback (most recent call last):
File “c:/Users/user/Documents/arsiv/ses_tasarim.py”, line 1, in
from PyQt5 import QtCore, QtGui, QtWidgets
ImportError: DLL load failed while importing QtCore: Belirtilen modül bulunamadı.