如何在Python3中扩展curses窗口类?

2024-02-08

我想延长curses通过调用创建的内置窗口类curses.newwin().

但是,我很难找到应该替换的类的实际名称¿newwin?下面的占位符。

#!/usr/bin/python3

import curses

class Window(curses.¿newwin?):

    def __init__(self, title, h, w, y, x):
        super().__init__(h, w, y, x)
        self.box()
        self.hline(2, 1, curses.ACS_HLINE, w-2)
        self.addstr(1, 2, title)
        self.refresh()

def main(screen):
    top_win = Window('Top window', 6, 32, 3, 6)
    top_win.addstr(3, 2, 'Test string added.')
    top_win.refresh()
    ch = top_win.getch()

# MAIN
curses.wrapper(main)

所以我去了封装而不是继承,这就像编写自己的 API 一样。我也应用了全局类模式 https://pythonconquerstheuniverse.wordpress.com/2010/10/20/a-globals-class-pattern-for-python/,即在一个单独的 SE 问题中讨论 https://stackoverflow.com/q/45052970/2192488.

#!/usr/bin/python3

import curses

class win:
    pass

class Window:

    def __init__(self, title, h, w, y, x):
        self.window = curses.newwin(h, w, y, x)
        self.window.box()
        self.window.hline(2, 1, curses.ACS_HLINE, w-2)
        self.window.addstr(1, 2, title)
        self.window.refresh()

    def clear(self):
        for y in range(3, self.window.getmaxyx()[0]-1):
            self.window.move(y,2)
            self.window.clrtoeol()
        self.window.box()

    def addstr(self, y, x, string, attr=0):
        self.window.addstr(y, x, string, attr)

    def refresh(self):
        self.window.refresh()

def main(screen):
    win.top = Window('Top window', 6, 32, 3, 6)
    win.top.addstr(3, 2, 'Test string added.')
    win.top.refresh()
    ch = win.top.getch()

# MAIN
curses.wrapper(main)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python3中扩展curses窗口类? 的相关文章

  • 通过相邻行的差异过滤 pandas 数据框

    我有一个按日期时间索引的数据框 我想根据行的索引与前一行的索引之间的差异来过滤行 因此 如果我的标准是 删除比前一行晚一小时以上的所有行 则应删除下面示例中的第二行 2005 07 15 17 00 00 2005 07 17 18 00
  • 如何根据列行拆分数据框

    我有一个 Excel 文件 数据框有 20 行 几行之后再次出现列名称行 我想根据列名称行划分数据帧 这是示例 x 0 1 2 3 4 x 23 34 5 6 预期输出是 df1 x 0 1 2 3 4 df2 x 23 34 5 6 考虑
  • 抓取问题:“检查元素”与“查看页面源代码”不同

    我正在尝试对一个网页进行网络抓取 该网页内部包含多个选项卡 当我单击所需的选项卡并显示其内容后 首先出现两个问题 1 网页地址不会更改 并且所有选项卡都相同 2 当我使用浏览器 firefox和chrome 的 查看页面源 查看页面源时 所
  • Python - 使用嵌套列表时奇怪的 IF 语句

    我不明白为什么else条件未通过 有人可以解释为什么吗 Python 3 4 list list of list list append Test list append This list of list append list list
  • python 从字符串创建对象

    我有下一个情况 以下方法的目标是返回从传入字符串创建的对象 所以我有 class Situation Generator pass 以及父类中的方法 class Generator object def createsituation se
  • 有没有一种方法可以帮助让这个Python逻辑运行得更快

    我一直在研究一种从 PLC 传感器获取数据的解决方案Python我能够计算出语法等使用cpppo https github com pjkundert cpppo就以假定的序列化方式循环从标签获取数据而言 这工作得很好 为了测试这个新的Py
  • super(cls, 实例) 和 super(cls, 子类) 之间有什么区别?

    Won t super cls instance and super cls subclass 两者都返回超类cls 差异是巨大的 super 使用类型 类 第二个参数而不是对象 实例 为您提供未绑定的方法 而不是绑定的方法 就像访问类上的
  • 使用 CSS 选择器和 BeautifulSoup 获取属性值

    我正在抓取网页Python并使用BeutifulSoup library I have HTML像这样的标记 tr class deals span class hotel name a href www example2 com a sp
  • 在 Selenium 中自动执行下拉菜单而不选择

    我正在尝试使用 Selenium 从下拉列表中选择一个元素 我已经能够选择下拉列表 但我不知道如何从下拉列表中选择特定元素 因为该网站不使用 select 因此我无法使用内置的 select 类 作为参考 这是下拉列表中元素之一的 HTML
  • 将黑白图像完全转换为一组线条(也称为仅使用线条进行矢量化)

    我有许多黑白图像 想将它们转换为一组线条 这样我就可以完全或至少接近完全地从线条重建原始图像 换句话说 我试图将图像矢量化为一组线条 我已经看过了霍夫线变换 https docs opencv org2 4 modules imgproc
  • 创建具有子级别的类属性

    我一直在读这个topic https excelmacromastery com vba class modules A Quick Guide to the VBA Class Module关于如何使用类模块 我的目标是提高代码性能和可读
  • Python 中的 Hello World [重复]

    这个问题在这里已经有答案了 我尝试运行一个 python 脚本 print Hello World 我收到此错误 File hello py line 1 print Hello World SyntaxError invalid synt
  • Travis-ci 和 Gobject 内省

    我正在尝试设置 Travis获取 GNOME https github com getting things gnome gtg My travis yml https github com getting things gnome gtg
  • 如何设置appache2的WSGI与python 3.7一起使用?

    我使用的是 ubuntu 16 04 并安装了 python 3 7 并使用以下说明将其设置为默认值 无法在 ubuntu 中将默认 python 版本设置为 python3 https stackoverflow com question
  • 强制 shell 在 SunGrid 引擎中使用 conda 变量中的 python [重复]

    这个问题在这里已经有答案了 我正在尝试在 SunGrid 引擎中执行 python 文件 并且从 anaconda3 环境变量中执行它 我的代码很简单 from future import print function import url
  • Flask 从线程中删除会话变量

    我尝试实施投票系统 它的工作原理是这样的 如果用户对帖子进行投票 我会在会话变量中记录其临时状态 已投票 已加星标等 如果当前用户在我将结果保存到临时表之前尚未投票 用户可以在 5 分钟内更改投票 5 分钟后 结果将使用线程永久写入数据库
  • Pandas 如何删除包含所需字符串的行

    我想删除包含所需字符串的所有行 假设我有以下数据框 A B C 1 a x w g n 3 l p j p v 我想删除包含字符串的所有行p 我已经搜索过它 但大多数答案都是基于列名称 就我而言 我不会知道它可以出现在任何列中 输出数据帧应
  • 使用字典来键入一系列值[重复]

    这个问题在这里已经有答案了 我有一个 pandas 数据框 我想根据另一列的值在新列中创建类别 我可以通过这样做来解决我的基本问题 range range 0 5 Below 5 range 6 10 between range 11 10
  • pandas to_sql sqlalchemy 与 secure_transport 的连接

    我正在尝试将数据发送到具有 require secure transport ON 的服务器上的 mysql 数据库 当我尝试使用以下代码连接到它时 import pandas as pd import pymysql from sqlal
  • 根据给定列表中的值替换列中的值[重复]

    这个问题在这里已经有答案了 我在数据框中有一列 仅允许定义列表中存在的值 例如 给定列表 l1 1 2 5 6 如果列表中不存在列中的值 我需要将每个值替换为 0 column Expected column 1 1 5 5 2 2 3 0

随机推荐