Можно ли поместить весь мой код для инициализации моего дисплея tKinter или pygame в его собственный класс, просто чтобы привести в порядок вещи.Это весь код, который выполняется один раз, прежде чем я попаду в основной цикл?
Я пишу что-то, что использует графический интерфейс Pygame и фрейм tKinter для GUI.Все работает нормально, но кажется, что все это без грязи без отступов в моей основной строке кода.Ничего хитрого, просто читая разрешение монитора, а затем используя его, чтобы настроить размер и расположение моих кадров PyGame и Tkinter.
Я отредактировал код ниже, чтобы показать свои основные циклы и то, как я обновляю дисплеи tkinter и pygame.Все работает хорошо.
Мне просто интересно, могу ли я привести в порядок вещи, используя класс для хранения всех кнопок и т. Д., Которые я хочу на дисплее tkinter.
Жаль, что я не мог бы все это сложитьв классе или что-то.Извините, я нуб, получаю взрыв, играя с питоном!
import random
import math
import os
import pygame
import numpy as np
#from tkinter import *
#from tkinter import ttk
from tkinter import Tk, Button, Label, LabelFrame, PhotoImage, Radiobutton
from tkinter import messagebox, DISABLED, NORMAL, Menu
pygame.init()
infoObject = pygame.display.Info() #Read video mode full resolution
pygame.display.set_mode((infoObject.current_w, infoObject.current_h)) #Intialize pygame window to full screen mius 400 on left (to be used for tkinter main window)
SMALL_TEXT = pygame.font.Font('freesansbold.ttf', 12)
os.environ['SDL_VIDEO_WINDOW_POS'] = "%d,%d" % (0, 30) #set placement for next window in windows env
gameDisplay = pygame.display.set_mode((infoObject.current_w - 400,infoObject.current_h - 70), pygame.RESIZABLE)
pygame.display.set_caption('Collision Detection')
pygame.font.init() # Set up text ops
root = Tk()
geom = (str(400) + 'x' + str(infoObject.current_h - 70) + '+' + str(infoObject.current_w - 410) + '+' + str(0))
root.geometry(geom)
root.configure(background='gray70')
root.title('Vessel Control')
# Create a couple test buttons and labels on root form, to be updated by code in mainloop
lab = Label(root, text="Don't Push The Button!")
lab.grid(row=0, column=0)
but = Button(root, text="Push Me", command=changebut)
but.grid(row=1, column=0)
posxlab = Label(root, text='USV X Position (m): ')
posxlab.grid(row=2, column=0)
# Here i set up the rest of the junk for my program
# Then i start my own main loop, not usuing tkinters.
# Main loop
while not gameExit:
#And my full code is in here, a few thousand lines or so
pygame.display.update() #update pygame display
root.update_idletasks() #process tkinter events
root.update() #Update tkinter window
clock.tick(FRAME_RATE)
pygame.quit()
quit()