Vielleicht hat jemand Lust sich das anzuschauen.
Vielen Dank
Gruß ganja
Code: Alles auswählen
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys, math
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5 import Qt
from PyQt5.uic import loadUi
from PIL import Image
import PIL
from PIL.ImageQt import ImageQt
#from Image import Image
#from Image import *
class Application(Qt.QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
#### ohne border
#self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
self.ui = loadUi("wheel_gui.ui", self)
self.start.clicked.connect(self.start_rotate)
self.angle=0
self.img_dict = {}
self.angle_step = 0
self.load_angle = 0
self.step = 20
pixmap = QtGui.QPixmap("pfeilunten1.png")
self.label.setPixmap(QtGui.QPixmap(pixmap).scaled(50, 50, QtCore.Qt.IgnoreAspectRatio,QtCore.Qt.SmoothTransformation))
self.label.setAlignment(QtCore.Qt.AlignCenter)
#pixmap = QtGui.QPixmap("wheel.png")
#self.label_2.setPixmap(QtGui.QPixmap(pixmap).scaled(650, 650, #QtCore.Qt.IgnoreAspectRatio,QtCore.Qt.SmoothTransformation))
#self.label_2.setAlignment(QtCore.Qt.AlignCenter)
im = Image.open('Gluecksrad_750_2.png')
im = im.convert("RGBA")
data = im.tobytes("raw","RGBA")
qim = ImageQt(im)
pix = QtGui.QPixmap.fromImage(qim)
#self.label_2.setPixmap(pix)
#self.graphicsScene.addPixmap(pix)
#pix.show()
#self.label_2(pix)
self.load_image()
self.label['image'] = self.img_dict[0]
self.load_images()
def start_rotate(self,event=None):
if not self.angle_step:
self.angle_step = 10
self.angle = self.angle// 10 * 10
self.img_rotate()
self.Button['state'] = 'disabled'
self.after(int(4500+random()*1000),self.wheel_stop)
def load_images(self):
if self.load_angle < 360:
self.load_image()
self.after(1,self.load_images)
def load_image(self):
self.img_dict[self.load_angle] = ImageQt(self.label_2.rotate(self.load_angle))
#self.img_dict[self.load_angle] = ImageQt.PhotoImage(self.label_pil_img.rotate(self.load_angle))
self.load_angle += 10
def img_rotate(self):
self.angle += self.angle_step
self.angle = self.angle % 360
if self.angle_step != 10:
self.img = ImageQt(self.label_2.rotate(self.angle))
self.label['image'] = self.img
if not (self.angle % 15):
self.angle_step = max(0,self.angle_step-1)
if self.angle_step:
self.after(self.step,self.img_rotate)
else:
self.Button['state'] = 'normal'
print(self.angle)
else:
if self.angle not in self.img_dict:
self.img_dict[self.angle] = ImageQt(self.label_2.rotate(self.angle))
self.label['image'] = self.img_dict[self.angle]
self.after(self.step,self.img_rotate)
def wheel_stop(self,event=None):
self.angle_step = 5
def main():
app = Qt.QApplication(sys.argv)
app_now = Application()
app_now.show()
#full ohne border
#app_now.showFullScreen()
app.exec_()
if __name__ == '__main__':
main()
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>961</width>
<height>783</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="label">
<property name="minimumSize">
<size>
<width>0</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>50</height>
</size>
</property>
<property name="font">
<font>
<pointsize>48</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="text">
<string>v</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="widget_2" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>100</height>
</size>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="start">
<property name="minimumSize">
<size>
<width>0</width>
<height>90</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>90</height>
</size>
</property>
<property name="font">
<font>
<pointsize>80</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>START</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>