我正在try 添加一个下拉列表到pyGame_Menu,它显示月份的日期‘1’-‘31’(或‘01’-‘31’),但是当我在运行时 Select 下拉列表时,它只显示最左边的字符.将运行的最简明的代码如下

import pygame
import pygame_menu as pm
import sys

from pygame.locals import *

WIDTH, HEIGHT = 1100, 800
WIN = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.init()


my_theme = pm.themes.THEME_DARK.copy()
my_theme.title = False
my_theme.background_color = color_opaque = (50, 100, 200)


setup_menu = pm.Menu('', WIDTH, HEIGHT)
days = ['01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31']


####
setup_menu.add.dropselect('Days',items=days, placeholder_add_to_selection_box=False)
####

def main():
    run = True
    clock = pygame.time.Clock()

    while run:
        clock.tick(60)

        for event in pygame.event.get():
            if event.type == QUIT:
                run = False
                pygame.display.quit()
                pygame.quit
                sys.exit()
                break

            if setup_menu.is_enabled():
                setup_menu.update(pygame.event.get())
                setup_menu.mainloop(WIN)
        

            pygame.display.update()

if __name__ == "__main__":
    main() 

上面的代码生成以下代码

enter image description here

enter image description here

任何建议都将不胜感激.谢谢

推荐答案

问题出在你的days list 上.根据documentation,您需要创建一个元组列表:

DropSelect的项目包括:

items = [('Item1', a, b, c...), ('Item2', d, e, f...)]

  • 元组的第一个元素是将显示在下拉菜单中以表示选项的显示文本.
  • 元组中的其余元素可以保存与该选项关联的其他数据.

另外,请注意,如果使用单个项目创建元组,则只会显示每个项目的第一个字符.例如:

days = [('Mon'), ('Tue'), ('Wed')]

将在下拉菜单上显示‘M’、‘T’和‘W’.因此,如果要显示全文,请向每个元组添加空字符串:

days = [('Mon', ''), ('Tue', ''), ('Wed', '')]

以下是您的代码的工作版本:

import pygame
import pygame_menu as pm
import sys

from pygame.locals import *

WIDTH, HEIGHT = 1100, 800
WIN = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.init()


my_theme = pm.themes.THEME_DARK.copy()
my_theme.title = False
my_theme.background_color = color_opaque = (50, 100, 200)


setup_menu = pm.Menu('', WIDTH, HEIGHT)

# use a list of tuples instead
characters = [
    ('Kaboom Bot', 'Mech'), ('Impulsive Trickster', 'Demon'), ('Low-Flier', 'Dragon'), 
    ('Menagerie Mug', 'None'), ('Murcules', 'Murloc'), ('Tad', 'Murloc')]

####
setup_menu.add.dropselect('Characters',items=characters, placeholder_add_to_selection_box=False)
####

def main():
    run = True
    clock = pygame.time.Clock()

    while run:
        clock.tick(60)

        for event in pygame.event.get():
            if event.type == QUIT:
                run = False
                pygame.display.quit()
                pygame.quit
                sys.exit()
                break

            if setup_menu.is_enabled():
                setup_menu.update(pygame.event.get())
                setup_menu.mainloop(WIN)
        

            pygame.display.update()

if __name__ == "__main__":
    main() 

Python相关问答推荐

数字梯度的意外值

具有症状的分段函数:如何仅针对某些输入值定义函数?

如何使用Python将工作表从一个Excel工作簿复制粘贴到另一个工作簿?

如何在Python中将returns.context. DeliverresContext与Deliverc函数一起使用?

log 1 p numpy的意外行为

使用setuptools pyproject.toml和自定义目录树构建PyPi包

numpy卷积与有效

如何在Raspberry Pi上检测USB并使用Python访问它?

OR—Tools中CP—SAT求解器的IntVar设置值

如果条件不满足,我如何获得掩码的第一个索引并获得None?

如何从pandas的rame类继承并使用filepath实例化

Python列表不会在条件while循环中正确随机化'

需要帮助重新调整python fill_between与数据点

干燥化与列姆化的比较

提高算法效率的策略?

没有内置pip模块的Python3.11--S在做什么?

极柱内丢失类型信息""

如何根据一定条件生成段id

操作布尔值的Series时出现索引问题

如何在Polars中创建条件增量列?