如何在 GtkTextView Widget 的回车键上设置回调并将 TextView 设置为像 gtk.entry(单行)一样工作?
我可以使用图标创建菜单项:
new = gtk.ImageMenuItem(gtk.STOCK_NEW, 'New')
Run Code Online (Sandbox Code Playgroud)
但我如何使用自定义图标 - 从文件?
问这个我觉得很傻,但是如何创建一个只接受单行的 TextView 呢?大多数其他 gui 工具包都有“setMultiline”等方法,但 PyGTK 似乎真的很喜欢多行。其他一些语言为这些更简单的文本框提供了“TextFields”。
http://www.pygtk.org/docs/pygtk/class-gtktextview.html#method-gtktextview--set-justification
我需要一种方法来使一个gtk.TextView在pygtk GUI中忽略鼠标点击.
我已将'editable'属性设置为false以提供用户输入,但它仍然会响应鼠标单击.
此textview显示其他命令的一些输出,因此如果用户单击其中的任何位置,它会将光标移动到单击的位置.我需要避免这种情况.
我需要类似于set_property('sensitive',False)结果的东西,但不会使窗口小部件变灰.它只需要坐在那里忽略各种用户输入.
任何人有任何想法如何实现这一目标?
提前致谢.
我有一个显示滑块的基本程序。我理解它们使用基于事件的回调的概念。我想要做的是说更新一个图像,或者在没有用户交互的情况下自动更新日志,所以它基本上会一直调用这个事件。我不确定是否有回调,但任何建议将不胜感激。
如何在gtk中的框/任何小部件周围创建边框?
当我说边框时,我指的是您在下图中看到的浅灰色圆角矩形:

我尝试/寻找的函数不创建边框,即set_border()在窗口小部件周围创建内部间隙/填充.
b= gtk.VBox(False, 10)
b.set_border(1)
Run Code Online (Sandbox Code Playgroud) 我想检测用户单击按钮时是否按下ctrl."clicked"信号似乎没有向回调传递足够的信息来解决这个问题.
我有一个在Glade 中设计的 GUI,在后台使用 python/gtk。我想处理delete event并显示“你确定吗?” - 消息对话框。我一直在尝试处理删除和销毁事件,但未能做到所以,有光吗?
#!/usr/bin/python
import .... stuff
class App:
def __init__(self):
self.gladefile = 'test.glade'
windowname = 'window'# This must match the window name in glade
self.wTree = gtk.glade.XML(self.gladefile, windowname)# object for acessing widgets
dic={
# Also need to set project2's signal tab
'on_window_delete_event':self.on_erro,
'on_window_destroy_event':self.on_erro,
}
self.wTree.signal_autoconnect (dic)
self.op=self.wTree.get_widget('window')
self.op.show()
def on_erro(self,widget,*args):
print 'hello'
app = App()
gtk.main()
Run Code Online (Sandbox Code Playgroud)
此代码打开一个简单的窗口。单击关闭按钮时,它会打印 hello 并退出。(我希望窗口保持打开状态)
如何制作gtk.Window(不用导入Gtk,Gtk.Window我的意思)透明?例如,使用import gtk,gtk.Window做同样的事情?
#!/usr/bin/env python
import cairo
from gi.repository import Gtk, Gdk
class MyWin (Gtk.Window):
def __init__(self):
super(MyWin, self).__init__()
self.set_position(Gtk.WindowPosition.CENTER)
self.set_size_request(300, 220)
self.set_border_width(11)
self.screen = self.get_screen()
self.visual = self.screen.get_rgba_visual()
if self.visual != None and self.screen.is_composited():
print "yay"
self.set_visual(self.visual)
self.set_app_paintable(True)
self.connect("draw", self.area_draw)
self.show_all()
def area_draw(self, widget, cr):
cr.set_source_rgba(.2, .2, .2, 0.3)
cr.set_operator(cairo.OPERATOR_SOURCE)
cr.paint()
cr.set_operator(cairo.OPERATOR_OVER)
MyWin()
Gtk.main()
Run Code Online (Sandbox Code Playgroud) 我使用 Gtk.rc_parse("path/to/Hooli/gtk-3/gtk.css") 代码尝试了 rc_parse 方法,但它不起作用。这个问题很简单,但问题的解决并不容易。如何更改我的 gtk 应用程序主题?或者如何在我的 gtk 应用程序上使用自定义主题?
谢谢。