我正在使用 Glade 编写一个 PyGI 应用程序,但我遇到了一个问题,即我有一个带有 Gtk.Entry 的 Gtk.ComboBoxText,但由于某种原因我无法使条目可编辑。即加载 UI 时,无法在其中输入文本。
我已经查看了所有条目的属性以及组合框文本父项的属性,但我找不到任何明显我遗漏的东西。奇怪的是,如果我只用代码创建它(即没有 Glade.ui文件),这似乎工作,然后条目是可编辑的。
代码:
#!/usr/bin/env python
from gi.repository import Gtk
class Combo:
def __init__(self):
builder = Gtk.Builder()
builder.add_from_file('combo.ui')
window = builder.get_object('window1')
window.connect('destroy', lambda w: Gtk.main_quit())
window.show_all()
Combo()
Gtk.main()
Run Code Online (Sandbox Code Playgroud)
格莱德文件:
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkWindow" id="window1">
<property name="can_focus">False</property>
<child>
<object class="GtkComboBoxText" id="comboboxtext1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="has_entry">True</property>
<property name="entry_text_column">0</property>
<property name="id_column">1</property>
<child internal-child="entry">
<object class="GtkEntry" id="comboboxtext-entry">
<property name="can_focus">False</property>
</object>
</child>
</object>
</child> …Run Code Online (Sandbox Code Playgroud) 目前,当我的按钮标签获得更多字符时,它的容器框会水平调整大小,并将旁边的其他容器推开。我不想要这种行为。
我如何给我的盒子一个固定的宽度,这样当他们的子小部件变大时它们不再被调整大小?

项目:http : //bazaar.launchpad.net/~robinj/gtkreddit/trunk/files
如果我将条目附加到treestore,我可以看到条目在那里,但我看不到这些条目的任何文本。我不知道我是否必须添加一个repaint或什么,或者我是否应该treestore以treeview某种方式将列链接到列。
问题(不显示文字):

列添加到treeview:

以及我添加的用于向树添加条目的代码:
# Code for other initialization actions should be added here.
treestore = self.builder.get_object("treestore1")
root = treestore.append(None,["from_test1","to_test1"])
treestore.append(root,["from_test2","to_test2"])
Run Code Online (Sandbox Code Playgroud) 我刚刚下载了 Quickly,创建了一个新项目,设置了简单的 GUI 并创建了新对话框(快速添加对话框创建(如您所见,我称之为创建))。我已经在主窗口中有点击处理程序,但我不知道如何从那里打开我的CreateDialog。
PS 我是 PyGTK、Glade 和 Quickly 的新手,但我对整体编程并不陌生。
很抱歉有一个新手问题,但我不知道如何打印用户在按下按钮后在 GTKEntry 字段中输入的文本。
我用glade、一个简单的TextEntry 字段和一个按钮来设计我的应用程序。在我更改 myappWindow.py 的代码后:
def on_button1_clicked(self, widget, data=None):
print 'pressed'
def entry1_changed_cb(self, widget, data=None):
return widget.get_text ()
Run Code Online (Sandbox Code Playgroud)
但是现在我不知道如何在用户按下按钮后打印输入字段的文本。
谢谢你的帮助!
大家好(男孩,我似乎发了很多帖子),我有一个关于 Glade 和 Quickly 的问题。是否可以将按钮映射到同一程序中的笔记本。比如说我有一个工具栏,上面有一个按钮。我可以将它链接到笔记本小部件上的第 3 页吗?
例如,我的工具栏上有一个按钮。虽然我知道如何将其映射到外部程序,但我不确定如何将其映射到第 3 页(本例中的示例)。我不想打开另一个窗口(已经可以这样做),但我不知道如何将它链接到程序中已有的内容。
当我按下应用程序中的按钮时,会打开一个对话框,并且我希望它位于应用程序主窗口上方的中心,但我找不到执行此操作的方法。我正在使用 Quickly (Python) 和 Glade。
在 Glade 中我尝试了以下设置:
但我根本无法得到我所追求的行为。当使用“窗口类型”选项“顶层”时,对话框将在屏幕中央打开。当我使用“Window Type”=“Popup”时,它在左上角打开,窗口控件无法访问。
我知道这一定是一个非常基本的设置,但我刚刚开始使用 GTK 和 Python 进行开发,所以我显然错过了这一点。
感谢您的任何建议!:)
所以,我正在用 GTK3 开发我的第一个应用程序,但我不知道如何将我的按钮与其各自的定义链接起来。任何人都可以发布教程,示例或一些文档吗?
使用接下来的东西来开发我的应用程序:
我正在开发的应用程序是Virtuam(App Showdown 的候选者!)