gpt4 book ai didi

python - 在 Ubuntu/Quckly 中为命令行服务器提供基本 GUI 的一般布局和架构?

转载 作者:太空狗 更新时间:2023-10-30 01:35:00 26 4
gpt4 key购买 nike

几年前,我为本地社区广播电台编写了一个 python 命令行实用程序。这项工作的目的是使用从 Google 日历获得的元数据增强广播流。这意味着任何在流中收听广播电台的人都能够阅读有关当前正在播放的内容以及距离下一个节目开始还有多少分钟的最新信息流。

大多数情况下,这个脚本运行良好,多年来一直提供良好的服务。

最近我遇到了一个新需求:此应用程序的用户希望偶尔停止、启动或重新加载进程(例如,因为计划信息已更改)。我们没有教工作室的每一位员工如何使用命令行,而是考虑为该工具提供一个简单的 GUI。

由于该应用程序将仅在 Ubuntu 上开发和运行,因此我们选择了 Quickly 作为一个简单的开发框架。它有据可查,并为开发人员了解该平台提供了较低的负担。

我们希望应用程序的初始设计包含类似浏览器的工具按钮功能区(启动、停止、重新加载)。包含滚动状态消息的大面板。在其下方将有一个小的状态栏,可以让您深入了解程序的当前内部状态。

作为 GUI 编程的新手,我仍然不确定如何构建 UI:主要的谜团仍然存在:

  1. 日志消息将在其中流动的滚动文本面板应使用何种控件。这需要是只读的,但每次生成日志消息时都会更新。我曾计划制作一个自定义 Python 日志记录处理程序,将任何日志消息重定向到此面板 - 但最简单的方法是什么?

  2. 我目前拥有的脚本在未对 time.sleep() 执行任何操作时会阻塞 - 这显然对 GUI 不利,那么对于 GUI 应用程序中的进程来说,正确的行为是什么?做一段时间?

  3. 我的流程最初设计为在终端中作为单个线程运行。鉴于我需要它像以前一样或多或少地运行,这是否意味着我应该考虑将 GUI 的东西放在工作进程的单独线程上。是否有关于如何在 Quickly 框架内执行此操作的任何记录模式?

  4. 继续 - 是否有一种好方法可以让使用 Quickly 开发的应用程序在 Ubuntu 以外的平台上运行?例如,我能否轻松调整我的应用程序以在任何其他基于 Linux 的操作系统上运行。 OSX 或 Windows 等不相关的东西呢?

谢谢!

最佳答案

  1. 您可以使用只读的 GtkTextView。也许您可以将其扩展为带有输出的管道。
  2. 您可以使用 idle_add()(在 Glib 中可用)在程序空闲时随时运行调用方法/函数。
  3. 你可能想查看 How to work with threads in pygtk .
  4. PyGTK 是可移植的。 Quickly 是一个包装器,用于使用 PyGTK/PyGObject 和一些额外的细节创建应用程序。根据您的代码,保持它的可移植性应该不是很困难。

关于python - 在 Ubuntu/Quckly 中为命令行服务器提供基本 GUI 的一般布局和架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11186187/

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