好吧,我将在前言中提到我是GTK 和 Python新手,但我无法挖掘出我需要的信息.基本上我所拥有的是单选按钮列表,基于哪一个被检查,我需要将按钮连接到不同的功能.我尝试创建所有单选按钮,然后sget_active()在每个按钮上创建一个恶心的if/else块检查.问题是同一个按钮每次都返回true.有任何想法吗?
这是使用中的代码:
#Radio Buttons Center
self.updatePostRadioVBox = gtk.VBox(False, 0)
self.updatePageRadio = gtk.RadioButton(None, "Updating Page")
self.updatePostRadio = gtk.RadioButton(self.updatePageRadio, "Updating Blog Post")
self.pageRadio = gtk.RadioButton(self.updatePageRadio, "New Page")
self.blogRadio = gtk.RadioButton(self.updatePageRadio, "New Blog Post")
self.addSpaceRadio = gtk.RadioButton(self.updatePageRadio, "Add New Space")
self.removePageRadio = gtk.RadioButton(self.updatePageRadio, "Remove Page")
self.removePostRadio = gtk.RadioButton(self.updatePageRadio, "Remove Blog Post")
self.removeSpaceRadio = gtk.RadioButton(self.updatePageRadio, "Remove Space")
#Now the buttons to direct us from here
self.returnMainMenuButton = gtk.Button(" Main Menu ")
self.returnMainMenuButton.connect("clicked", self.transToMain)
self.contentManageHBoxBottom.pack_start(self.returnMainMenuButton, False, False, 30)
self.contentProceedButton = gtk.Button(" …Run Code Online (Sandbox Code Playgroud) 我正在学习Python和PyGTK.我正在尝试写一个Twitter客户端.哪个小部件最适合显示推文(时间轴).我可以使用textview轻松完成,但它不支持子窗口小部件来显示用户图像.
尝试使用TreeView,但它似乎是一个矫枉过正,太复杂.
我正在使用Glade
如何强制GTK窗口对象保持相同的大小,即使它内部的表尝试扩展?
在将子项连接到表时,我尝试使用gtk.SHRINK,但表中的TextView仍然继续扩展到超出可接受的宽度并随之扩展窗口.
我对pygtk很熟悉.我发现从代码构建GUI需要做很多工作.所以我转向格莱德.我正在尝试按照Glade和PyGTK的教程,以及它们如何协同工作,但是,我似乎找不到任何GTKBuilder格式的教程.
我发现一对夫妇的教程,像http://www.wmlug.org/pdf/Intro%20to%20PyGTK.pdf,http://www.linuxjournal.com/article/6586?page=0,2 这些帮助我进入Glade,但我不确定如何从那里开始,因为libglade已被弃用.
我正在使用PyGTK开发我正在开发的小应用程序.通过代理使用URLlib2将冻结我的GUI.反正有没有阻止它?
实际完成工作的代码是与GUI分开的,所以我想可能正在使用subprocess来调用python文件.但是,如果我要将应用程序转换为exe文件,那该怎么办?
谢谢
如何在一个GtkBuilder文件中存储多个不同的窗口/对话框,然后在不同的类中加载这些窗口(每个类对应一个不同的窗口)?例如,目前我正在做的事情如下:
def __init__(self):
self.builder = gtk.Builder()
self.builder.add_from_file('gtkbuilder.xml')
self.welcome_dialog = self.builder.get_object('welcome_dialog')
self.builder.connect_signals(self)
self.welcome_dialog.show()
Run Code Online (Sandbox Code Playgroud)
这确实产生了一个功能很强的软件,但是它会发出各种各样的警告:
welcome_dialog.py:38: RuntimeWarning: missing handler 'on_contract_window_response'
self.builder.connect_signals(self)
Run Code Online (Sandbox Code Playgroud)
对于我在Glade中为所有其他窗口定义的每个信号处理程序.我想我想做的就是连接这个单一窗口/对话框的信号并忽略其他一切,但我不知道该怎么做.或者也许我正在做一些可怕的错误,我应该将每个窗口拆分成不同的GtkBuilder文件?或者在相同(初始)时间为每个可能的窗口连接信号?
我正在使用Python和pyGTK开发一个项目.我有一个窗口,其唯一目的是显示图像.除非图像太大而不适合屏幕,否则默认情况下窗口不应显示滚动条.
所以我做的是这样的:
window = gtk.Window()
window.resize(image.size[0], image.size[1])
scrolled = gtk.ScrolledWindow()
scrolled.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
scrolled.set_shadow_type(gtk.SHADOW_NONE)
area = gtk.DrawingArea()
area.set_size_request(image.size[0], image.size[1])
window.add(scrolled)
scrolled.add_with_viewport(area)
area.show()
scrolled.show()
window.show()
Run Code Online (Sandbox Code Playgroud)
但它不太有效.生成的窗口有点太小,因此滚动条显示出来.
为了工作,我必须将第二行改为:
window.resize(image.size[0] + 2, image.size[1] + 2)
Run Code Online (Sandbox Code Playgroud)
但这很丑陋,并不适用于所有系统.在我的Windows框中,我必须使用+ 3.
我该怎么做才能确保窗口足够大以容纳图像?
我正在学习PyGTK,我正在制作一个文本编辑器(这似乎是pygtk的hello世界:))无论如何,我有一个"保存"功能,将TextBuffer写入文件.看起来像
try:
f = open(self.working_file_path, "rw+")
buff = self._get_buffer()
f.write(self._get_text())
#update modified flag
buff.set_modified(False)
f.close()
except IOError as e:
print "File Doesnt Exist so bring up Save As..."
......
Run Code Online (Sandbox Code Playgroud)
基本上,如果文件存在,请将缓冲区写入其中,如果没有调出另存为对话框.
我的问题是:"更新"文件的最佳方法是什么.我似乎只能附加到文件的末尾.我尝试过各种文件模式,但我确定我错过了一些东西.
提前致谢!
在将事件连接到函数之后,我想要一种手动触发事件的方法(事件实际上没有发生).我正在寻找像jQuery的.trigger()函数.
谢谢
我有以下脚本clip-test.py:
#!/usr/bin/python
import gtk
gtk.Clipboard().set_text("exciting clipboard contents")
gtk.Clipboard().set_can_store(None) # not sure if these last two lines are useful
gtk.Clipboard().store()
Run Code Online (Sandbox Code Playgroud)
当我这样运行时:
python clip-test.py
Run Code Online (Sandbox Code Playgroud)
它不起作用.剪贴板未更改.我们可以通过以交互模式运行它并且不让流程完成来阐明该问题:
python -i clip-test.py
Run Code Online (Sandbox Code Playgroud)
在离开交互模式之前,尝试粘贴到某个地方.剪贴板已更改; 有用.关闭python后,剪贴板将返回之前的状态.
一个想法是,这与默认情况下代码访问的剪贴板display和selection剪贴板有关,但我尝试改变这些参数,但我仍然无法使其工作.
我正在使用Python 2.7.3和python-gtk2 2.24.0-3build1,运行Kubuntu 13.04.
是什么赋予了?