python - 在 python 中,如何从 Gtk.entry 输入框中获取值并将其传递给变量?

标签 python user-interface gtk

我已经花了两天时间从entry3、entry2和entry 1获取用户输入并用它定义3个变量l、w和h。无论我如何尝试,我都无法让 Gtk.Entry.get_text() 识别我的条目!这是我的代码;它启动了我为解决毕达哥拉斯定理问题而创建的一个漂亮的小图形用户界面。

#!usr/bin/env python
import math
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
a = False
b = False
c = True #changed for test
l = 0
w = 0
h = 0
ans = 0

class MyGI(Gtk.Window):
    def gtk_main_quit(self, *args):
        Gtk.main_quit(*args)
        raise SystemExit
    def solve(self, widget):
        self.builder = Gtk.Builder()
        l = self.builder.get_object('entry3')
        float(l)
        print l
        if a == True:
            ans = math.pow(h, 2) - math.pow(w, 2)
            ans = math.sqrt(ans) 
            print(ans)
        if b == True:
            ans = math.pow(h, 2) - math.pow(l, 2)
            ans = math.sqrt(ans) 
            print(ans)
        if c == True:
            ans = math.pow(l, 2) + math.pow(w, 2)
            ans = math.sqrt(ans) 
            print(ans)
    def a_x(self, widget):
        a = True
        b = False
        c = False
        print a
    def b_x(self, widget):
        a = False
        b = True
        c = False
    def c_x(self, widget):
        a = False
        b = False
        c = True
    def entree(self, widget):
        pass
builder = Gtk.Builder()
builder.add_from_file("pythag.glade")
builder.connect_signals(MyGI())
window = builder.get_object("window1")    #old window method
window.show_all()

Gtk.main()

感谢任何帮助,我已无能为力了。这是唯一需要解决的问题

最佳答案

你不应该那样使用 GtkBuilder。当您创建窗口时,您应该在每个 .ui 文件中使用它一次(例如,在类的 __init__ 中),然后 get_object() 将所有内容放入实例变量中。

我的 Python 生锈了,所以,像这样:

    def __init__(self):
        super().__init__()
        builder = Gtk.Builder.new_from_file("pythag.glade")
        builder.connect_signals(self)
        self.window = builder.get_object("window1")
        self.entry3 = builder.get_object("entry3")
        self.window.show_all()
    def solve(self, widget):
        float(self.entry3)

要从 GtkEntry 获取文本,请使用语法 entryObject.props.text

关于python - 在 python 中,如何从 Gtk.entry 输入框中获取值并将其传递给变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42309861/

相关文章:

Python + Flask 应用程序在 Pycharm 在 127.0.0.1 上运行后从错误的文件夹运行

python - 使用 multiply 创建包含列表的列表

jquery - 什么时候应该使用 React.js 状态更新 UI 与仅使用 CSS?

jquery - UserPicker 输入元素,如 GMAIL

python - 将模型中的字段合并到一个 Gtk.TreeViewColumn 中

python - 用回车符和空行连接多个 pandas 列

python - 如何在 CSV Python 2.7 中仅搜索精确值?

user-interface - Racket 中的游戏编程

c - GdkPixbuf 集合

Python Gtk 按钮