问题描述
我正在从文件中读取内容,并在窗口的Textview中显示它们。 我不希望所有行都显示在textview中。 我想将其限制为仅前5行(假设文件包含20行)。
import pygtk
pygtk.require('2.0')
import gtk
class Txtview:
def __init__(self):
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.set_resizable(True)
window.set_border_width(0)
box2 = gtk.VBox(False, 10)
textview = gtk.TextView()
textbuffer = textview.get_buffer()
textview.show()
box2.pack_start(textview)
infile = open("/newfile.txt", "r")
if infile:
string = infile.read()
infile.close()
textbuffer.set_text(string)
window.add(box2)
window.show_all()
def main():
gtk.main()
return 0
if __name__ == "__main__":
Txtview()
main()
1楼
如果将block更改为以下形式,则必须更改TxtView构造函数:
if infile:
lines = 5 if len(infile.readlines()) > 5 else len(infile.readlines())
string = "\n".join(infile.readlines()[:lines])
textbuffer.set_text(string)
infile.close()