I have following problem:
How can i insert text in my textbuffer?
Interface.py
class MainWindow:
def __init__(self):
# Build our Interface from the XML/Glade file
gladefile = "MainWindow.glade"
try:
self.builder = Gtk.Builder()
self.builder.add_from_file(gladefile)
except:
print("Failed to load Glade file: %s" % gladefile)
# Connect signals
self.builder.connect_signals(self)
# Get the widgets
self.window = self.builder.get_object("MainWindow")
...
# TextViews
self.TextViewCommandInput = self.builder.get_object("TextViewCommandInput")
self.TextViewCommandOutput = self.builder.get_object("TextViewCommandOutput")
...
def DrawCommandView(output):
TextBufferCommandInput = MainWindow.TextViewCommandInput.get_buffer()
TextBufferCommandInput.insert_at_cursor(output + "\n")
And import "DrawCommandView" in a file
Commands.py
from Interface import MainWindow, DrawCommandView
output = "Hello World"
DrawCommandView(output)
if __name__ == "__main__":
StartMainWindow = MainWindow()
StartMainWindow.main()
But I keep getting this error:
Traceback (most recent call last):
File "/home/user/Dokumente/Workspace/project/Commands.py", line 5, in <module>
DrawACommandView(output)
File "/home/user/Dokumente/Workspace/project/Interface.py", line 182, in DrawCommandView
TextBufferCommandInput = MainWindow.TextViewCommandInput.get_buffer()
AttributeError: class MainWindow has no attribute 'self'
Thanks for your help!
greetz
When you say
TextBufferCommandInput = MainWindow.TextViewCommandInput.get_buffer()You are asking for a class attribute in MainWindow named TextViewCommandInput. You don't have a class attribute TextViewCommandInput, you have an instance attribute TextViewCommandInput. You need to pass an instance of MainWindow into DrawCommandView in order to get to TextViewCommandInput.