Re: Anfänger frage wheel of fortune
Verfasst: Donnerstag 10. August 2017, 19:31
Hi, Vielen Dank @wuf hab auch eine Lösung gefunden auf andere weise wie du aber es tut, Danke
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*
try:
import tkinter as tk
except ImportError:
import Tkinter as tk
from PIL import Image,ImageTk
from random import random
APP_TITLE = "Wheel of Fortune"
APP_XPOS = 100
APP_YPOS = 100
MARK_WIDTH = 50
MARK_HEIGHT = MARK_WIDTH
MARK_COLOR = 'black'
POLYGON_POINTS = [(0, 0), (MARK_WIDTH, 0), (MARK_WIDTH/2, MARK_HEIGHT)]
class Application(tk.Frame):
def __init__(self, parent, **kwargs):
self.parent = parent
tk.Frame.__init__(self, parent ,**kwargs)
# widget definitions ===================================
self.cv_mark = tk.Canvas(self, width=MARK_WIDTH, height=MARK_HEIGHT)
self.cv_mark.pack(pady=2)
self.cv_mark.create_polygon(POLYGON_POINTS, fill=MARK_COLOR, tag='mark')
self.label_pil_img = Image.open('Gluecksrad_750_2.png')
self.label = tk.Label(self)
self.label.bind('<space>',self.start_rotate)
self.bind('<space>',self.start_rotate)
self.label.pack(expand=1,fill='both')
self.angle=0
self.img_dict = {}
self.angle_step = 0
self.load_angle = 0
self.step = 20
self.Button = tk.Button(self, text='START', font=("Helvetica bold", 80),
command=self.start_rotate)
self.Button.pack()
self.Button.bind('<space>',self.start_rotate)
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] = ImageTk.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 = ImageTk.PhotoImage(self.label_pil_img.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)
self.stop_check()
else:
if self.angle not in self.img_dict:
self.img_dict[self.angle] = ImageTk.PhotoImage(self.label_pil_img.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 stop_check(self):
if 0 <= self.angle <= 60:
print ("ja gewonnen")
elif 120 <= self.angle <= 150:
print ("gewonnen ja")
elif 210 <= self.angle <= 240:
print ("gewonnen ja")
elif 300 <= self.angle <= 360:
print ("gewonnen ja")
else:
print ("jetzt nicht")
def main():
app_win = tk.Tk()
app_win.title(APP_TITLE)
#app_win.geometry("+{}+{}".format(APP_XPOS, APP_YPOS))
app_win.option_add("*highlightThickness", 0)
app = Application(app_win).pack(fill='both', expand=True, padx=6, pady=6)
app_win.mainloop()
if __name__ == '__main__':
main()
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
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(60, 60, QtCore.Qt.IgnoreAspectRatio,QtCore.Qt.SmoothTransformation))
self.label.setAlignment(QtCore.Qt.AlignCenter)
pixmap = QtGui.QPixmap("bild.png")
self.label_2.setPixmap(QtGui.QPixmap(pixmap).scaled(650, 650, QtCore.Qt.IgnoreAspectRatio,QtCore.Qt.SmoothTransformation))
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
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>
Na mit dieser Frage müßtest Du dann in das Qt/Kde Foruim gehen.ganja hat geschrieben:Guten Morgen, mit Hilfe von euch und vielen Beispielen, habe ich das hin bekommen Vielen DANK an alle, jetzt würde ich nochmal Hilfe brauchen wenn ihr noch Lust habt, ich möchte es gerne in pyqt5 versuchen
hier Code was für meine Bedürfnisse vollkommen reicht, und mein Anfang in pyqt5, ich hatte alles in das neue file mitgenommen, hab problem mit dem hier " ImageTk.PhotoImage" das es in qt Image.tk nicht gibzt ist mir klar, was muss da hin das es tut.
Danke