问题标签 [gtk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
2008 浏览

python - 如何连贯地组织 PyGTK 桌面应用程序的模块?

我正在使用 PyGTK 开发一个桌面应用程序,并且似乎遇到了我的文件组织的一些限制。到目前为止,我已经以这种方式构建了我的项目:

  • application.py - 保存主要的应用程序类(大多数功能例程)
  • gui.py - 拥有一个松耦合的 GTK gui 实现。处理信号回调等。
  • command.py - 包含不依赖于应用程序类中数据的命令行自动化功能
  • state.py - 保存状态数据持久性类

到目前为止,这已经很好地发挥了作用,但此时 application.py 开始变得相当长。我查看了许多其他 PyGTK 应用程序,它们似乎有类似的结构问题。在某个时刻,主模块开始变得很长,并且没有明显的方法可以在不牺牲清晰度和面向对象的情况下将代码分成更窄的模块。

我考虑过让 GUI 成为主要模块,并为工具栏例程、菜单例程等设置单独的模块,但那时我相信我将失去 OOP 的大部分好处并最终得到一个一切都引用一切的场景.

我应该只处理一个很长的中央模块,还是有更好的方式来构建项目,这样我就不必过多地依赖类浏览器?

编辑我

好的,关于所有 MVC 的东西都采取了这一点。我的代码中确实有一个粗略的 MVC 近似值,但不可否认,通过进一步分离模型和控制器,我可能会获得一些进展。但是,我正在阅读 python-gtkmvc 的文档(顺便说一句,这是一个很棒的发现,感谢您参考它),我的印象是它并不能解决我的问题,而只是形式化它。我的应用程序是一个单一的空地文件,通常是一个窗口。因此,无论我多么严格地定义模块的 MVC 角色,我仍然会让一个控制器模块完成大部分工作,这几乎就是我现在所拥有的。诚然,我对正确的 MVC 实现有点模糊,我会继续研究,但事实并非如此

我应该为窗口的不同部分(工具栏、菜单等)考虑单独的控制器/视图对吗?也许这就是我在这里所缺少的。似乎这就是 S. Lott 在他的第二个要点中所指的内容。

感谢您到目前为止的回复。

0 投票
3 回答
5057 浏览

python - 如何在 Windows、Linux 和 MacOS 中通过 Python 确定显示空闲时间?

我想知道自从用户最后一次按键或移动鼠标以来已经过了多长时间 - 不仅在我的应用程序中,而且在整个“计算机”(即显示器)上,以便猜测他们是否仍然在计算机并能够观察屏幕上弹出的通知。

我想纯粹从 (Py)GTK+ 来做这件事,但我愿意调用特定于平台的函数。理想情况下,我想调用已经从 Python 包装的函数,但如果这不可能,我不会超过一点 C 或ctypes代码,只要我知道我真正在寻找什么。

在 Windows 上,我认为我想要的功能是GetLastInputInfo,但这似乎没有被 pywin32 包装;我希望我错过了什么。

0 投票
5 回答
529 浏览

winapi - Windows 上的原生 GTK#?

如何在不使用 cygwin 的情况下为 Windows 编译最新版本的 GTK#?

任何和所有的帮助将不胜感激。

0 投票
2 回答
353 浏览

python - 如何使用 GTK 获取正在运行的应用程序列表?

如何获取正在运行的应用程序的列表?我指的是屏幕底部面板中的那些。

0 投票
1 回答
1235 浏览

python - pygtk glade 问题:为什么这个简单的脚本不起作用?

我一直在编写一个使用 glade 来组合 UI 的小型 pygtk 应用程序。我已经创建了几个可以工作的窗口,但由于某种原因,这个窗口不起作用。我得到以下回溯:

下面是 test.py 的内容:

这是林间空地文件 test.glade:

奇怪的是,如果我拿出 signal_autoconnect(self) 调用,窗口就会打开。但是,如果我用“self.on_TestClass_destroy(self,None,None)”替换该调用,它会返回相同的 NameError 异常。

我真的不明白为什么这不起作用,因为我创建了其他几个可以正常工作的窗口类。

以下代码对这里的任何人都有效吗?

0 投票
4 回答
5649 浏览

python - Python GTK MVC

我一直在寻找一个好的 Python 使用 PyGTK 的 MVC 框架。我看过Kiwi,但发现它有点欠缺,尤其是在使用 Gazpacho Glade 替代品时。

还有其他不错的桌面 Python MVC 框架吗?我是少数(似乎)不想要网络应用程序的人之一。

0 投票
4 回答
3853 浏览

python - 如何处理有许多窗户的林间空地项目

我正在开发一个 PyGTK/glade 应用程序,它目前有 16 个窗口/对话框,大约 130KB,最终将有大约 25 个窗口/对话框,大约 200KB。目前,我将所有窗口存储在一个整体的空地文件中。当我运行一个窗口时,我称它为...

我想知道将每个窗口拆分成它自己的空地文件是否是一个更好的主意。而不是一个有 25 个窗口/对话框的林间空地文件,我有 25 个林间空地文件,每个文件有一个窗口/对话框,并像这样调用它:

你们认为最好的方法是什么?一种方法是否比另一种方法更耗费资源?转到单个林间空地文件的一件好事是命名小部件会更容易。例如,我将所有 OK 按钮命名为“windowxyz_ok”,但我可以将其更改为简单的“ok”。让事情变得更简单。缺点是对不同的窗口进行更改可能不太方便。

我对任何和所有争论持开放态度。谢谢!

0 投票
1 回答
1028 浏览

macos - 如何在 Mac OS X 上的 GTK 中检测 alt/option 键是否关闭?

我想检测在 Mac OS X 上的 GTK 中鼠标拖动期间是否按下了 alt/option 键。我正在使用 pygtk。通常,按住 alt 会将 MOD1_MASK 添加到 event.state,但 alt 确实会影响 event.state。在按键事件中,alt 显示为 gtk.keysyms.kana_switch,但这对于我的目的来说还不够,因为用户可能会在不同的应用程序中按下 alt 并通过单击切换到我的。

是否有可用的设置会导致 alt/option 在 event.state 中显示为修饰符?或者,即使按键按下事件发生在不同的应用程序中,是否有一种方法可以检测按键当前是否按下?

0 投票
3 回答
1878 浏览

windows - 有没有可以在 Windows 下使用的 GTK 终端组件?

我需要构建一个类似终端的应用程序,该应用程序需要在我通常的 Ubuntu 安装下使用,但也需要在 Windows 下使用。我一直在寻找一个接受命令并能够显示某种命令历史记录和输出的终端组件。

gnome-terminal 中使用了一个名为 VTE 的组件,但我无法在 Windows 下编译它,因为它依赖于一些 Unix 特定的函数(看起来)。您是否知道任何其他可以在 Windows 下构建的类似终端的 GTK 组件或以某种方式构建 VTE?

0 投票
3 回答
305 浏览

email - 没有 POP 或 IMAP 的邮件客户端

我的大学拒绝允许我们通过 POP 或 IMAP 等方式访问邮件,所以我想编写一个基于 GTK 的 C 应用程序,它位于我的通知区域并完成邮件客户端通知程序的工作。因为我不能使用 POP 或 IMAP 之类的东西,所以有什么好的方法呢?我想我可以抓取 HTML 并查找仅存在于未读邮件或其他内容中的标签?

有任何想法吗?