Anfänger frage wheel of fortune

Fragen zu Tkinter.
ganja
User
Beiträge: 189
Registriert: Mittwoch 3. Dezember 2014, 07:44

Hi, Vielen Dank @wuf hab auch eine Lösung gefunden auf andere weise wie du aber es tut, Danke
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi ganja

OK ganja. Respektiere ich voll. Wünsche dir viel Spass und Erfolg bei der weiter Entwicklung deines Projektes.

Gruss wuf :wink:
Take it easy Mates!
ganja
User
Beiträge: 189
Registriert: Mittwoch 3. Dezember 2014, 07:44

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

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()
hier die ui

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>
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

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
Na mit dieser Frage müßtest Du dann in das Qt/Kde Foruim gehen.
ganja
User
Beiträge: 189
Registriert: Mittwoch 3. Dezember 2014, 07:44

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. :shock:

Danke Alfons Mittelmeyer werde ich morgen bei qt/kde versuchen, Vielen Dank für deine Beispiele hier und tipps und und, Danke
Antworten