在 IPython qtconsole 中确定终端宽度

Posted

技术标签:

【中文标题】在 IPython qtconsole 中确定终端宽度【英文标题】:Determining terminal width in IPython qtconsole 【发布时间】:2015-03-04 23:23:01 【问题描述】:

在运行 IPyhton qtconsole 时,如何确定列数以最大化文本显示以使其在当前设置下看起来不错?

【问题讨论】:

相关:How to get console window width in python 不能。我们知道这在某些情况下并不理想,但它是一般原则的一部分,即代码不应过多了解当前可能显示其输出的内容。 看起来代码在 qtconsole (ConsoleWidget.sizeHint()) 中,但我不知道如何从运行在 qtconsole 下的脚本中获得该代码 【参考方案1】:

sizeHint() 对我来说效果不佳(没有随窗口调整大小),但 size() 效果很好。

In [10]: ipyida.ida_plugin.obj.widget.parent.size()
Out[10]: PyQt5.QtCore.QSize(1241, 894)

要访问正在运行的实例,我必须修补导入 qtconsole 的 .py 文件并插入:

globals()['obj'] = self

就我而言,qtconsole 是从 IDA 启动的,因此我可以通过以下方式访问:

instance be accessed via:   
    import ipyida           
    ipyida.ida_plugin.obj.* 

要计算字符列数,您需要执行以下操作:

f = ipyida.ida_plugin.obj.widget.parent.fontInfo()
f.pixelSize() # 11
w = ipyida.ida_plugin.obj.widget.parent.size().width() // f.pixelSize()

【讨论】:

【参考方案2】:

尝试在ipython_qtconsole_config.py中改变宽高

# c.IPythonWidget.width = 81
# c.IPythonWidget.height = 25

【讨论】:

以上是关于在 IPython qtconsole 中确定终端宽度的主要内容,如果未能解决你的问题,请参考以下文章

TensorFlow 在 Python CLI 和 IPython CLI 中导入,但不在 IPython QtConsole 中

Anaconda ipython qtconsole 启动器

如何从 ipython qtconsole 使用标准库“记录”记录到文件?

指定 ipython 配置文件 qtconsole

嵌入 ipython qtconsole 并传递对象

iPython/jupyter qtconsole 无法在 anaconda 2.4.0 中启动