Anfänger frage wheel of fortune
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
hier die ui
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
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>
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
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
hallo @Alfons Mittelmeyer, dort kenne ich niemanden, dort wollte ich mal eine frage stellen, und habe erst ein wenig gelesen, und dann habe ich gelesen da war jemand neu und hat eine frage gestellt, und hatte irgend etwas falsch geschrieben, und da wurde er ...., da bin ich erschrocken und habe meine frage nicht gestellt bei meinem schreib Fehlern werde ich dort sofort raus geschmissen.
Danke Alfons Mittelmeyer werde ich morgen bei qt/kde versuchen, Vielen Dank für deine Beispiele hier und tipps und und, Danke
Danke Alfons Mittelmeyer werde ich morgen bei qt/kde versuchen, Vielen Dank für deine Beispiele hier und tipps und und, Danke