Как отображать на кнопке текст на кнопке нажмите в Arcade Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как отображать на кнопке текст на кнопке нажмите в Arcade Python?

Сообщение Anonymous »

Я делаю программу роликов в кости с Arcade. У меня есть кнопки, настроенные для печати результата rand.int, но я хотел бы сделать результат фактически появиться в аркадном окне, а не в терминале. Я также не уверен, что если я сделал фон правильно, мне пришлось нарисовать менеджер пользовательского интерфейса после него в конце. Кроме того, если у кого -то есть совет по упрощению, дайте мне знать! Спасибо !! < /p>

Код: Выделить всё

import arcade
import arcade.gui
from random import randint

class QuitButton(arcade.gui.UIFlatButton):
def on_click(self, event: arcade.gui.UIOnClickEvent):
arcade.exit()

class MyWindow(arcade.Window):
def __init__(self):
super().__init__(800, 600, "DICE ROLLER", resizable=True)

self.background = arcade.load_texture("galaxy.jpg")

# --- Required for all code that uses UI element,
# a UIManager to handle the UI.
self.manager = arcade.gui.UIManager()
self.manager.enable()

# Set background color

default_style = {
"font_name": "Kenney Mini Square",
"font_size": 15,
"font_color": arcade.color.WHITE,
"border_width": 4,
"border_color": None,
"bg_color": (21, 19, 21),

# used if button is pressed
"bg_color_pressed": arcade.color.WHITE,
"border_color_pressed": arcade.color.WHITE,  # also used when hovered
"font_color_pressed": arcade.color.BLACK,
}

pink_style = {
"font_name": "Kenney Mini Square",
"font_size": 23,
"font_color": arcade.color.CHERRY_BLOSSOM_PINK,
"border_width": 4,
"border_color": None,
"bg_color": arcade.color.BLACK,

# used if button is pressed
"bg_color_pressed": arcade.color.CHERRY_BLOSSOM_PINK,
"border_color_pressed": arcade.color.CHERRY_BLOSSOM_PINK,  # also used when hovered
"font_color_pressed": arcade.color.BLACK,
}

blue_style = {
"font_name": "Kenney Mini Square",
"font_size": 23,
"font_color": arcade.color.BABY_BLUE_EYES,
"border_width": 4,
"border_color": None,
"bg_color": arcade.color.BLACK,

# used if button is pressed
"bg_color_pressed": arcade.color.BABY_BLUE_EYES,
"border_color_pressed": arcade.color.BABY_BLUE_EYES,  # also used when hovered
"font_color_pressed": arcade.color.BLACK,
}

green_style = {
"font_name": "Kenney Mini Square",
"font_size": 23,
"font_color": arcade.color.LIGHT_MOSS_GREEN,
"border_width": 4,
"border_color": None,
"bg_color": arcade.color.BLACK,

# used if button is pressed
"bg_color_pressed": arcade.color.LIGHT_MOSS_GREEN,
"border_color_pressed": arcade.color.LIGHT_MOSS_GREEN,  # also used when hovered
"font_color_pressed": arcade.color.BLACK,
}

purple_style = {
"font_name": "Kenney Mini Square",
"font_size": 23,
"font_color": arcade.color.BRIGHT_UBE,
"border_width": 4,
"border_color": None,
"bg_color": arcade.color.BLACK,

# used if button is pressed
"bg_color_pressed": arcade.color.BRIGHT_UBE,
"border_color_pressed": arcade.color.BRIGHT_UBE,  # also used when hovered
"font_color_pressed": arcade.color.BLACK,
}

yellow_style = {
"font_name": "Kenney Mini Square",
"font_size": 23,
"font_color": arcade.color.LEMON_CHIFFON,
"border_width": 4,
"border_color": None,
"bg_color": arcade.color.BLACK,

# used if button is pressed
"bg_color_pressed": arcade.color.LEMON_CHIFFON,
"border_color_pressed": arcade.color.LEMON_CHIFFON,  # also used when hovered
"font_color_pressed":  arcade.color.BLACK,
}

orange_style = {
"font_name": "Kenney Mini Square",
"font_size": 23,
"font_color": arcade.color.RAJAH,
"border_width": 4,
"border_color": None,
"bg_color": arcade.color.BLACK,

# used if button is pressed
"bg_color_pressed": arcade.color.RAJAH,
"border_color_pressed": arcade.color.RAJAH,  # also used when hovered
"font_color_pressed": arcade.color.BLACK,
}

# Create a vertical BoxGroup to align buttons
self.v_box = arcade.gui.UIBoxLayout(x=200,y=200)

# Create the buttons
d20_button = arcade.gui.UIFlatButton(text="D20", width=200, style=blue_style)
self.v_box.add(d20_button.with_space_around(bottom=20))

d12_button = arcade.gui.UIFlatButton(text="D12", width=200, style=pink_style)
self.v_box.add(d12_button.with_space_around(bottom=20))

d10_button = arcade.gui.UIFlatButton(text="D10", width=200,style=green_style)
self.v_box.add(d10_button.with_space_around(bottom=20))

self.v2_box = arcade.gui.UIBoxLayout()

d8_button = arcade.gui.UIFlatButton(text="D8", width=200, style=purple_style)
self.v2_box.add(d8_button.with_space_around(bottom=20))

d6_button = arcade.gui.UIFlatButton(text="D6", width=200, style=yellow_style)
self.v2_box.add(d6_button.with_space_around(bottom=20))

d4_button = arcade.gui.UIFlatButton(text="D4", width=200, style=orange_style)
self.v2_box.add(d4_button.with_space_around(bottom=20))

self.v3_box = arcade.gui.UIBoxLayout()

# Again, method 1. Use a child class to handle events.
quit_button = QuitButton(text="Quit", width=200, style=default_style)
self.v3_box.add(quit_button)

# --- Method 2 for handling click events,
# assign self.on_click_start as callback
d20_button.on_click = self.on_click_d20
d12_button.on_click = self.on_click_d12
d10_button.on_click = self.on_click_d10
d8_button.on_click = self.on_click_d8
d6_button.on_click = self.on_click_d6
d4_button.on_click = self.on_click_d4

# Create a widget to hold the v_box widget, that will center the buttons
self.manager.add(
arcade.gui.UIAnchorWidget(
anchor_x="left",
align_x=185,
anchor_y="center_y",
align_y=25,
child=self.v_box)
)
self.manager.add(
arcade.gui.UIAnchorWidget(
anchor_x="right",
align_x=-185,
anchor_y="center_y",
align_y=25,
child=self.v2_box)
)

self.manager.add(
arcade.gui.UIAnchorWidget(
anchor_x="center_x",
anchor_y="center_y",
align_y=-150,
child=self.v3_box)
)

def on_click_d20(self, event):
print(randint(1,20))

def on_click_d12(self, event):
print(randint(1,12))

def on_click_d10(self, event):
print(randint(1,10))

def on_click_d8(self, event):
print(randint(1,8))

def on_click_d6(self, event):
print(randint(1,6))

def on_click_d4(self, event):
print(randint(1,4))

def on_draw(self):
self.clear()
arcade.start_render()
# Drawing the background image
arcade.draw_texture_rectangle(400, 300, 800,600, self.background)
self.manager.draw()
window = MyWindow()
arcade.run()


Подробнее здесь: https://stackoverflow.com/questions/793 ... hon-arcade
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»