PyCharm/Python/PyQt5 yardım isteği

Başlatan gokhangokcen, 01 Ekim 2019, 12:55:24

gokhangokcen

Merhabalar, son zamanlarda pycharm ile python üzerine çalışmalar yapmaktayım. Son çalışmam ise raspberrypi üzerindeki dokunmatik ekran ile kullanmak için yazdığım bir kod parçacığı olacak.

Yapmak istediğim işlem ise "Form" üzerinde bulunan bir butona bastığımda "Label" ya da benzeri bir şey üzerinde "GIF" animasyon oynatabilmek. Örneğin fan aç isimli butona bastığımda fanın çalışır olduğunu görmek için Label üzerinde dönen fan animasyonunu oynatabilmeliyim.

Yaptıklarım denediklerim ise şöyle;
- PyQt5 Designer ile ekran tasarımını yapıyorum. Python koduna çevirip pycharm ile istediğim gibi çalıştırabiliyorum. Designer'da WebViewEngine isimli bir kutucuk var ekrana çekip içine animasyonu yüklüyorum.Bilgisayarda çalışıyor. Fakat raspberrypi üzerinde WebViewEngine isimli işlem çalışmıyor. ARM tabanlı olduğu için crosscompile gibi bir şeylerden bahsediliyor epey meşakatli bir işlem yapamadım. Kütüphaneyi kuramadım.

- PyQt5 ile QMovie fonksiyonu ile hem bilgisayar hem raspberry pi üzerinde istediğim animasyonu çalıştırıyorum. Fakat anaform üzerinde çalışıyor. Ben bunu "label" ya da benzeri bir şey üzerinde çalıştırıp formun belirli noktasında işleme göre görünsün/görünmesin gibi olmasını istiyorum. Form üzerinde çalışan kodum ise şöyle;

import sys
from PyQt5
.QtCore import QtQByteArray
from PyQt5
.QtWidgets import QWidgetQApplicationQLabelQSizePolicyQVBoxLayout
from PyQt5
.QtGui import QMovie

class GifPlayer(QWidget):
    
def __init__(selftitleparent=None):
        
QWidget.__init__(selfparent)

        
self.movie QMovie("animasyon.gif"QByteArray(), self)
        
size self.movie.scaledSize()
        
self.setGeometry(200200size.width(), size.height())
        
self.setWindowTitle(title)
        
self.movie_screen QLabel()
        
self.movie_screen.setSizePolicy(QSizePolicy.ExpandingQSizePolicy.Expanding)
        
self.movie_screen.setAlignment(Qt.AlignCenter)
        
main_layout QVBoxLayout()
        
main_layout.addWidget(self.movie_screen)
        
self.setLayout(main_layout)
        
self.movie.setCacheMode(QMovie.CacheAll)
        
self.movie_screen.setMovie(self.movie)
        
self.movie.start()
        
self.movie.loopCount()


if 
__name__ == "__main__":
    
app QApplication(sys.argv)
    
player GifPlayer("")
    
player.show()
    
sys.exit(app.exec_())

(animasyon.gif = örneğin dönen fan resmi)

Sorum ise şöyle yukarıdaki kod parçacığı hem raspberry'de hem pc'de çalışıyor.sorun yok ama animasyon form üzerinde oynuyor.Bunu nasıl kendi formum üzerinde gösterebilirim?
Bildiğini paylaşmak, Allah'ın verdiği öğrenme yeteneğinin zekatıdır.

gkimirti

lazarus ide kullan , gorsel arabirim ile pascal kodlarıyla çok rahat yapabilirsin.
raspian üzerinde lazarus kurup derleyebilirsin

muhittin_kaplan

label yada buton içerisine movie ekleseniz olmuyormu, (parent olarak)
www.ictr.club
www.muhittinkaplan.com

gokhangokcen

@muhittin_kaplan hocam biliyorsunuz ki sayenizde python'a başladım.Bir kez daha teşekkür ederim sizlere.Python kodlamayı çok iyi bilmiyorum. Basit bir örnek ile açıklamanız mümkün müdür?
Bildiğini paylaşmak, Allah'ın verdiği öğrenme yeteneğinin zekatıdır.

muhittin_kaplan

Akşam bende bakayım, bir örnek yaparız.
www.ictr.club
www.muhittinkaplan.com

muhittin_kaplan

@gokhangokcen animasyon form uzerinde oynuyor, kendi formu üzerinde oynamıyor dan kastınız nedir ?
www.ictr.club
www.muhittinkaplan.com

muhittin_kaplan

from PyQt5.QtCore import QtQByteArray
from PyQt5
.QtWidgets import QDialog,QApplication,QWidget,QMainWindow,QPushButton,QLabel
from PyQt5
.QtGui import QIcon,QMovie
import sys


class firstClass(QDialog):
    
''''''

    
def __init__(selfparent=None):
        
super(firstClassself).__init__(parent)
        
self.initUI()

    
def initUI(self):
        
self.setGeometry(0,0,500,500)
        
self.myButton=QPushButton(self)
        
self.myButton.setGeometry(10,10,40,40)
        
self.myButton.clicked.connect(self.butonClickEvent)


        
self.myLabel=QLabel(parent=self)
        
self.myLabel.setGeometry(10,50,500,500)
        
self.movie=QMovie("Loading_icon.gif",QByteArray(),parent=self.myLabel)
        
self.myLabel.setMovie(self.movie)
        
self.movie.start()
        
self.show()
        
    
def butonClickEvent(self):
        if 
self.myLabel.isHidden():
            
self.myLabel.setVisible(True)
            
self.movie.start()
        else:
            
self.myLabel.setVisible(False)
            
self.movie.stop()

if 
__name__ == '__main__':
    
app QApplication(sys.argv)
    
ex firstClass()
    
sys.exit(app.exec_())
www.ictr.club
www.muhittinkaplan.com

gokhangokcen

01 Ekim 2019, 22:44:20 #7 Son düzenlenme: 01 Ekim 2019, 22:49:23 gokhangokcen
@muhittin_kaplan hocam animasyon form üzerinde çalışıyor. Ben Form'un üzerindeki label içerisinde oynamasını istiyorum. Kendi formum derken tasarladığım gui üzerinde çalıştırmak istiyorum. Şu an deneme aşamasında farklı bir python dosyası oluşturdum orada denemeler yapıyorum. Anlam kargaşası olmuş orada sanırım  :)

Edit: bu arada hocam yapmış olduğunuz örnek tam görmek istediğim şekilde olmuş ellerinize sağlık. Buradan kendi Gui tasarımımın üzerine çekerim artık. Teşekkür ederim
Bildiğini paylaşmak, Allah'ın verdiği öğrenme yeteneğinin zekatıdır.

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.