标签: pygtk

最新的PyGTK教程

官方教程已经多年没有更新.其他地方有更新的吗?

pygtk

0
推荐指数
1
解决办法
1697
查看次数

0
推荐指数
1
解决办法
2248
查看次数

在GTK窗口中禁用右键单击

我将在Python GTK窗口(pyGTK)中禁用右键单击(以及上下文菜单),其中内部位于"窗口"pyWebKitGtk.

有人可以帮我写一些代码吗?
我认为最好直接在pyGTK中删除事件,但如果你知道如何在pyWebKitGtk中显示上下文菜单仍然是好的.

TNK TNK TNK

真的削减代码:


import gtk
import webkit

window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.connect("destroy", gtk.main_quit)

browser = webkit.WebView()
browser.open("http://www.stackoverflow.com")
scroller = gtk.ScrolledWindow()
scroller.add(browser)
window.add(scroller)

window.show_all()
gtk.main()
Run Code Online (Sandbox Code Playgroud)

python pygtk webkit contextmenu right-click

0
推荐指数
1
解决办法
1534
查看次数

python os.stat返回总是相同的mtime/size

使用以下代码,我总是得到相同的大小和mtime:

# -*- coding: utf-8 -*-

import gtk
import pygtk
import os

class LocalFileTreeView(gtk.TreeView):

    def __init__(self, model = None):
        super(LocalFileTreeView, self).__init__(model)

        self.model = gtk.TreeStore(gtk.gdk.Pixbuf, str, str, str)
        self.create_columns()
        self.set_model_data('/home/foo/Downloads/')
        self.set_model(self.model)

    def create_columns(self):
        self.icon_cell_renderer = gtk.CellRendererPixbuf()
        self.filename_cell_renderer = gtk.CellRendererText()
        self.size_cell_renderer = gtk.CellRendererText()
        self.last_modified_cell_renderer = gtk.CellRendererText()

        self.icon_column = gtk.TreeViewColumn(None, self.icon_cell_renderer, pixbuf = 0)
        self.filename_column = gtk.TreeViewColumn('filename', self.filename_cell_renderer, text = 1)
        self.size_column = gtk.TreeViewColumn('size', self.size_cell_renderer, text = 2)
        self.last_modified_column = gtk.TreeViewColumn('last modified', self.last_modified_cell_renderer, text = 3)

        self.append_column(self.icon_column)
        self.append_column(self.filename_column)
        self.append_column(self.size_column)
        self.append_column(self.last_modified_column)

    def set_model_data(self, path, …
Run Code Online (Sandbox Code Playgroud)

python size time pygtk stat

0
推荐指数
1
解决办法
979
查看次数

动态更改gtkListStore模型

所以我终于明白PyGTK是如何工作的,我正在开发一个简单的SQLite管理器应用程序.

为了显示查询的结果,我使用带有gtk.TreeView的gtk.ScrolledWindow.我设法在我需要的时候添加甚至更改ListStore对象中的值,我不能做的是更改ListStore对象的模型.

例如,在一个查询中,我可能有两列结果:

    self.query_results = gtk.ListStore(str,str)
    self.query_results.append(["1"],["John Doe"])
Run Code Online (Sandbox Code Playgroud)

在另一个我可能会得到更多列:

    self.query_results = gtk.ListStore(str,str,str,str)
    self.query_results.append(["20"],["Jane"],["jane@example.com"],["password"])
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用像

     self.query_results = gtk.ListStore(*[str]*len(columns))
Run Code Online (Sandbox Code Playgroud)

但是显然gtk.ListStore在创建之后不能更改它的模型,那么我该如何更新这个查询表呢?每次运行不同的查询时,是否需要销毁Treeview并再次绘制它?

谢谢,这是我在StackOverflow上的第一个问题,所以请原谅我没有遵循的任何错误/发布指南.

python pygtk

0
推荐指数
1
解决办法
1552
查看次数

如何在gtk/python程序中创建一个额外的无限循环?

新的,我知道当你调用gtk.main时程序应该进入无限循环.当调用self.quit时,gtk.main中的循环将中断.

但我需要另一个循环活动,它将检查日志文件的更改,并不断更新更改,进入gtk.Textbuffer,以显示在gtk.Textbox中.那么在哪里可以在以下代码中添加此循环.

class MessageBox:

    def __init__(self):
        builder = gtk.Builder()
        builder.add_from_file("mbx.glade")
        self.window = builder.get_object("window")
        dic = { "on_buttonSend_clicked" : self.sendmsg,
                "on_entry_activate" : self.sendmsg,
                "on_buttonWhois_clicked" : self.sendwhois,
                "on_buttonIdleTime_clicked" : self.sendidletime,
                "on_window_destroy" : self.exitfunc}
        builder.connect_signals(dic)
        self.entry = builder.get_object("entry")
        self.display = builder.get_object("display")
        self.displaybuff=self.display.get_buffer()

    def exitfunc(self, widget):


    def sendmsg(self, widget):


    def sendwhois (self, widget):


    def sendidletime (self, widget):


if __name__ == "__main__":

    msgbox = MessageBox()
    msgbox.window.show()
    gtk.main()
Run Code Online (Sandbox Code Playgroud)

python gtk pygtk

0
推荐指数
1
解决办法
315
查看次数

使GTK TreeView中的行无法选择

我想让PyGTK Tree-view(耦合到List Store)的选择行不可选,如果可能的话,显示为灰色.

有没有办法做到这一点?

python gtk pygtk

0
推荐指数
1
解决办法
1832
查看次数

Python OpenCV:按下某个键时刷新图像

我使用python opencv2模块开发了一个程序.

只要按下某个键,程序就会上传图像.

这是伪代码:

 import cv2
    from msvcrt import getch


    while True:

    k = getch()

    if k == 'w':

          img = cv2.imread(filedir + orange.jpg)
          cv2.namedWindow
          cv2.imshow(img)
          waitkey()
          destroyAllWindows

    elif k == 'a'

          img = cv2.imread(filedir + banana.jpg)
          cv2.namedWindow
          cv2.imshow(img)
          waitkey()
          destroyAllWindows
Run Code Online (Sandbox Code Playgroud)

这是自我解释,因为当我按下'w'时,我正在尝试上传'orange.jpg'文件.

我真正的问题是:如何以这种方式设计程序,用户不必按两次键,一键按下关闭图像文件,其他按键打开文件.这使设计失败,因为我想在一次击键中进行处理.即使用户按下'w'并且'orange.jpg'已经上传,也不会关闭此文件,该文件应该刷新.类似地,当用户按下'a',并且'orange.jpg'打开时,'orange.jpg'文件应该关闭,banana.jpg应该自动打开,这应该是一次操作.截至目前,我必须按两次键才能执行此任务.

我已经实现了代码,所以即使有人建议我去pygtk并通过按键使用它来上传图像,我也没有问题.我唯一的目标是破坏上传的图像而不会造成太多用户干扰,即处理应该是自主的.

正如beark所说,在程序中使用getch()意味着焦点将始终在控制台上.我对此并不满意,只想通过按键上传图像,但是控制台阻碍了这个动作.

谢谢.

python opencv pygtk numpy python-2.7

0
推荐指数
1
解决办法
5824
查看次数

pygtk中的圆角矩形

在pygtk应用程序中绘制圆角矩形的最佳方法是什么

python gtk pygtk

-1
推荐指数
1
解决办法
2008
查看次数

标签 统计

pygtk ×9

python ×8

gtk ×3

contextmenu ×1

linux ×1

numpy ×1

opencv ×1

python-2.7 ×1

right-click ×1

size ×1

stat ×1

time ×1

webkit ×1