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
所以基本上不读书,它打印“它不工作”,如果我把错误处理将在你被抛出时,不能将字符串转换为浮动 我欣赏它
答
我不确定你的问题是什么。按照预期,您可以从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。
您可以发布您正在使用的草地file or文件还是没有草地file file文件的简化示例? – elya5 2014-11-07 07:54:07
是否有可能得到一个如何使用笔记本(Pygtk 3与林间空地生成器)与其每个页面中的条目的工作示例。假设我在第一页有4个文本条目,第二个页面有4个条目,第三个页面有4个条目。非常感谢Elya5 – Warrior4just 2014-11-07 14:23:19