Pygtk嵌套条目和笔记本控制

问题描述:

问候Pygtk嵌套条目和笔记本控制

我在从主窗口中的笔记本的第一页检索条目文本有困难。 我测试了我的代码没有笔记本,但现在用笔记本,它要么抱怨不能将字符串转换为浮动或代码失败。

我是不是要考虑到笔记本页面或数据容器的东西

这里是我做过什么(解释),如果你能在这方面帮助我将不胜感激。

from gi.repository import Gtk , Gio 
 
from scipy.integrate import odeint 
 
import math 
 
import numpy as np 
 
from numpy import arange , pi, random, linspace 
 

 

 
class main : 
 
    def __init__(self): 
 
     self.builder = Gtk.Builder() 
 
     self.builder.add_from_file("File2.glade") 
 
     self.window=self.builder.get_object("window1") 
 
     self.window2=self.builder.get_object("window2") 
 
     self.ntbk=self.builder.get_object("notebook1") 
 
     sw1=self.builder.get_object('scrolledwindow1') 
 

 
       self.builder.connect_signals(Handler()) 
 
       self.window.show_all() 
 

 

 

 
class Handler: 
 
    def on_window1_destroy(self, object, data=None): 
 
     Gtk.main_quit() 
 
    def on_radiobutton1_toggled(self, widget): 
 
       # I will be doing something here 
 
    def on_radiobutton2_toggled(self, widget): 
 
       # I will be doing another thing here 
 
    def on_radiobutton3_toggled(self, widget): 
 
       # other 
 
     
 
     try: 
 
      m1=float(main.en1.get_text()); 
 
      m2= float(main.en2.get_text()); 
 
      m3= float(main.en3.get_text()); 
 
     except ValueError: 
 
      print " This is not working " 
 
      return 0

所以基本上不读书,它打印“它不工作”,如果我把错误处理将在你被抛出时,不能将字符串转换为浮动 我欣赏它

+0

您可以发布您正在使用的草地file or文件还是没有草地file file文件的简化示例? – elya5 2014-11-07 07:54:07

+0

是否有可能得到一个如何使用笔记本(Pygtk 3与林间空地生成器)与其每个页面中的条目的工作示例。假设我在第一页有4个文本条目,第二个页面有4个条目,第三个页面有4个条目。非常感谢Elya5 – Warrior4just 2014-11-07 14:23:19

我不确定你的问题是什么。按照预期,您可以从Gtk.Entry中检索文本。这种行为不会被Gtk.Notebook所改变。转换为浮动与get_text()无关。你得到一个字符串,如果字符串不包含有效的浮点数,并且你尝试转换它,你将会得到一个错误。

这是一个带有两个Gtk.Entries的Gtk.Notebook的工作示例,如果您单击该Gtk.Button,它将调用get_text()并尝试将该字符串转换为浮动。

from gi.repository import Gtk 

class Example: 
    def __init__(self): 
     window = Gtk.Window() 
     window.connect('delete-event', Gtk.main_quit) 

     box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) 
     notebook = Gtk.Notebook() 
     button = Gtk.Button('Get text') 
     button.connect('clicked', self.on_button_clicked) 

     self.entry1 = Gtk.Entry() 
     self.entry2 = Gtk.Entry() 
     self.entry2.set_input_purpose(Gtk.InputPurpose.NUMBER) 

     notebook.append_page(self.entry1) 
     notebook.append_page(self.entry2) 

     box.pack_end(button, True, True, 0) 
     box.pack_start(notebook, True, True, 0) 
     window.add(box) 
     window.show_all() 

    def on_button_clicked(self, widget): 
     self.try_conversion(self.entry1.get_text()) 
     self.try_conversion(self.entry2.get_text()) 

    def try_conversion(self, text): 
     try: 
      print('Float: {}'.format(float(text))) 
     except ValueError: 
      print('String: ' + text) 


if __name__ == '__main__': 
    Example() 
    Gtk.main() 

如果你只想要一个数字,你还应该考虑使用Gtk.SpinButton。