gpt4 book ai didi

python TUI 弹出窗口

转载 作者:太空宇宙 更新时间:2023-11-03 17:34:52 26 4
gpt4 key购买 nike

我需要一些提示来找到在 python 控制台应用程序中插入弹出窗口的简单解决方案。
此应用程序通常在无人值守的情况下运行,因为它是从 crontab 启动的。
它使用无处不在的日志记录来显示消息并将其保存到日志文件中。
然而,在某些情况下,当应用无法找到合适的选项时,需要用户干预来选择某些选项。
这就是为什么我在 argparse 中插入了一个 --interactive 选项,并且当应用程序需要用户干预时,控制台中应该出现一个弹出窗口,允许用户在列表中的某些项目之间进行选择。
以下是输出的摘录,可为您提供示例:

INFO    : Try to fuzzy-match 'Orange Itbn'
INFO : Fuzzy-matched alternative entries : ['Orange Is The New Black']
INFO : Fuzzy matched 'Orange Itbn' as seriesname 'Orange Is The New Black'
INFO : MOVE /Users/spadazz/testing/orange itbn.s03e10.hdtv.720p.mkv TO:
/Volumes/NAS/TV Shows/Orange Is The New Black/S03/Orange Is The New Black.S03E10.hdtv.720p.mkv
INFO : Try to fuzzy-match 'Sur'
INFO : Fuzzy-matched alternative entries : ['Survivors 2008', 'Survivors']
WARNING :
Series 'Sur' not uniquely matched in titles
Choose between these titles :
['Survivors 2008', 'Survivors']

WARNING :
******************************************
**** INSERT HERE THE CALL TO THE POPUP ***
******************************************

现在,我已经阅读了一些有关 tkinter、curses 和 npyscreen 的文档,但我无法为此目的想出一些简单的东西。
我不想弄乱应用程序结构或将日志消息放在主窗口中..
我只是想要一个弹出窗口,允许我在一些选项之间进行选择,即使是像“1”和“2”等简单的按键...
这也应该是一个Python解决方案,可能不需要从os调用外部命令。

有什么想法吗?

谢谢

最佳答案

在 npyscreen 的作者 Nicholas Cole 的帮助下,我解决了这个问题:

import npyscreen as np

class myPop(np.NPSApp):

def setopt(self, title, oList, multi):
self.title = title
self.options = oList
self.multi = multi
self.height = len(self.options)+1

def main(self):
F = np.Popup(name="Choose an option")
if self.multi:
opt = F.add(np.TitleMultiSelect, name=self.title, max_height=self.height, values=self.options, scroll_exit=True)
else:
opt = F.add(np.TitleSelectOne, name=self.title, max_height=self.height, values=self.options, scroll_exit=True)
F.edit()
self._values = opt.get_selected_objects()
self.result = ( self._values if self.multi and len(self._values) > 1 else self._values[0] )

def ChooseOption(title, oList, multi=False):

pop = myPop()
pop.setopt(title, oList, multi)
pop.run()
return pop.result

# Show a popup with radiobuttons to select 1 item from a list
print ChooseOption('choose a single element', ['a','b','c','d'])

# Show a popup with radiobuttons to multi-select items from a list
print ChooseOption('choose multi-elements', ['a','b','c','d'], True)

希望这有帮助。恩里科

关于python TUI 弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31338920/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com