Python GTK 拖放 - 获取 URL

2023-11-25

我正在创建一个小应用程序,必须能够接收 URL。如果应用程序窗口打开,我应该能够从浏览器中拖动链接并将其放入应用程序中 - 并且应用程序会将 URL 保存到数据库中。

我正在 Python/GTk 中创建它。但我对其中的拖放功能有点困惑。那么,怎么办呢?

一些实现拖放的示例代码(我的应用程序使用了一些这样的代码)...

import pygtk
pygtk.require('2.0')
import gtk

# function to print out the mime type of the drop item
def drop_cb(wid, context, x, y, time):
    l.set_text('\n'.join([str(t) for t in context.targets]))
    # What should I put here to get the URL of the link?

    context.finish(True, False, time)
    return True

# Create a GTK window and Label, and hook up
# drag n drop signal handlers to the window
w = gtk.Window()
w.set_size_request(200, 150)
w.drag_dest_set(0, [], 0)
w.connect('drag_drop', drop_cb)
w.connect('destroy', lambda w: gtk.main_quit())
l = gtk.Label()
w.add(l)
w.show_all()

# Start the program
gtk.main()

您必须自己获取数据。这是一个简单的工作示例,它将为删除的 url 设置标签:

#!/usr/local/env python

import pygtk
pygtk.require('2.0')
import gtk

def motion_cb(wid, context, x, y, time):
    l.set_text('\n'.join([str(t) for t in context.targets]))
    context.drag_status(gtk.gdk.ACTION_COPY, time)
    # Returning True which means "I accept this data".
    return True

def drop_cb(wid, context, x, y, time):
    # Some data was dropped, get the data
    wid.drag_get_data(context, context.targets[-1], time)
    return True

def got_data_cb(wid, context, x, y, data, info, time):
    # Got data.
    l.set_text(data.get_text())
    context.finish(True, False, time)

w = gtk.Window()
w.set_size_request(200, 150)
w.drag_dest_set(0, [], 0)
w.connect('drag_motion', motion_cb)
w.connect('drag_drop', drop_cb)
w.connect('drag_data_received', got_data_cb)
w.connect('destroy', lambda w: gtk.main_quit())
l = gtk.Label()
w.add(l)
w.show_all()

gtk.main()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python GTK 拖放 - 获取 URL 的相关文章

  • python导入模块时如何避免一直写模块名?

    我用math最近模块很多 我不想写math sqrt x and math sin x 每时每刻 我想缩短它并写sqrt x and sin x How 对于较长的模块名称 通常会缩短它们 例如 import numpy as np 然后您
  • 底图上的子图

    我有一张英国地图和 121 个地点 每个地点有 3 个值 我想绘制 121 个位置中每个位置的三个值的小条形图 目前 这些值绘制为markersize属性 看起来像这样 密集恐惧症情节 https i stack imgur com 5fv
  • Python 中的安全解除引用

    Groovy 有一个很好的安全取消引用运算符 这有助于避免 NullPointerExceptions variable method The method仅当以下情况时才会被调用variable is not null 有没有办法在 Py
  • Python + PostgreSQL + 奇怪的ascii = UTF8编码错误

    我有包含字符的 ascii 字符串 x80 代表欧元符号 gt gt gt print x80 当将包含该字符的字符串数据插入数据库时 我得到 psycopg2 DataError invalid byte sequence for enc
  • Python,将迭代函数变成递归函数

    我创建了一个输出 4 3 2 1 0 1 2 3 4 的迭代函数 def bounce2 n s n for i in range n print n n n 1 if n lt 0 for i in range s 1 print n n
  • Python的reduce()短路了吗?

    If I do result reduce operator and False 1000 得到第一个结果后它会停止吗 自从False anything False 相似地 result reduce operator or True 10
  • conda 无法从 yml 创建环境

    我尝试运行下面的代码来从 YAML 文件创建虚拟 Python 环境 我在 Ubuntu 服务器上的命令行中运行代码 虚拟环境名为 py36 当我运行下面的代码时 我收到下面的消息 环境也没有被创建 这个问题是因为我有几个必须使用 pip
  • html 解析器 python

    我正在尝试解析一个网站 我正在使用 HTMLParser 模块 问题是我想解析第一个 a href 评论后 但我真的不知道该怎么做 所以我在文档中发现有一个函数叫做handle comment 但我还没有找到如何正确使用它 我有以下内容 i
  • 如何在 ReportLab 段落中插入回车符?

    有没有办法在 ReportLab 的段落中插入回车符 我试图将 n 连接到我的段落字符串 但这不起作用 Title Paragraph Title n Page myStyle 我想要这样做 因为我将名称放入单元格中 并且想要控制单元格中的
  • 为什么我的scoped_session 引发 AttributeError: 'Session' object has no attribute 'remove'

    我正在尝试建立一个系统 将数据库操作优雅地推迟到单独的线程 以避免在 Twisted 回调期间发生阻塞 到目前为止 这是我的方法 from contextlib import contextmanager from sqlalchemy i
  • Pyspark 数据框逐行空列列表

    我有一个 Spark 数据框 我想创建一个新列 其中包含每行中具有 null 的列名称 例如 原始数据框是 col 1 col 2 col 3 62 45 null 62 49 56 45 null null null null null
  • 使用 WPF 和数据绑定将文件拖放到应用程序窗口中

    我希望能够将文件 例如从桌面或资源管理器 拖放到 WPF 应用程序的主窗口中 我也不希望有任何代码隐藏 即我想使用数据绑定 到目前为止 我测试了 gong wpf dragdrop 它似乎不支持应用程序外部的拖动目标 我可以将文件拖放到主窗
  • 网页抓取 - 前往第 2 页

    如何访问数据集的第二页 无论我做什么 它都只返回第 1 页 import bs4 from urllib request import urlopen as uReq from bs4 import BeautifulSoup as sou
  • 如何修复错误“AttributeError:‘模块’对象在 python3 中没有属性‘客户端’?

    以下是我的代码 import http h1 http client HTTPConnection www bing com 我认为没问题 但是 python 给了我以下错误 AttributeError 模块 对象没有属性 客户端 我想知
  • str.translate 给出 TypeError - Translate 采用一个参数(给定 2 个参数),在 Python 2 中工作

    我有以下代码 import nltk os json csv string cPickle from scipy stats import scoreatpercentile lmtzr nltk stem wordnet WordNetL
  • pip 安装软件包两次

    不幸的是我无法重现它 但我们已经见过几次了 pip 将一个软件包安装两次 如果卸载第一个 第二个就会可见并且也可以被卸载 我的问题 如果一个包安装了两次 如何用 python 检查 背景 我想编写一个测试来检查这一点 devOp Updat
  • Python正则表达式从字符串中获取浮点数

    我正在使用正则表达式来解析字符串中的浮点数 re findall a zA Z d d t 是我使用的代码 这段代码有问题 如果数字和任何字符之间没有空格 则不会解析该数字 例如 0 1 2 3 4 5 6 7 8 9 的预期输出为 0 1
  • Django 接受 AM/PM 作为表单输入

    我试图弄清楚如何使用 DateTime 字段在 Django 中接受 am pm 作为时间格式 但我遇到了一些麻烦 我尝试在 forms py 文件中这样设置 pickup date time from DateTimeField inpu
  • 大型数据集上的 Sklearn-GMM

    我有一个很大的数据集 我无法将整个数据放入内存中 我想在这个数据集上拟合 GMM 我可以用吗GMM fit sklearn mixture GMM 重复小批量数据 没有理由重复贴合 只需随机采样您认为机器可以在合理时间内计算的尽可能多的数据
  • 为什么用字符串和时间增量转置 DataFrame 会转换数据类型?

    这种行为对我来说似乎很奇怪 id列 字符串 在转置后转换为时间戳df如果另一列是时间增量 import pandas as pd df pd DataFrame id 00115 01222 32333 val 12 14 170 df v

随机推荐

  • ASP.Net MVC 3.0 Ajax.BeginForm 正在重定向到页面?

    在 ASP Net MVC 3 0 中我使用 Ajax Beginform 并点击 JsonResult 表单成功后我将调用 jQuery 函数 但由于某种原因我的表单重定向到 JsonAction my View using Ajax B
  • Delphi XE中占用大量内存的TStringList对象

    我正在开发一个模拟程序 该程序首先要做的事情之一是读取一个大文件 28 MB 大约 79 000 行 解析每一行 大约 150 个字段 为该对象创建一个类 并将其添加到 TStringList 它还读取另一个文件 该文件在运行期间添加更多对
  • Volley 库请求队列的最大大小是多少

    我在用VolleyAndroid 中的库 我想知道允许使用的队列的最大大小是多少Volley图书馆 我没有发现与此相关的任何内容 据我所知 您需要将网络请求添加到队列中 但我不知道可以将其并行队列的最大大小是多少 RequestQueue
  • MySQL 索引减慢查询速度

    MySQL Server version 5 0 95 Tables All InnoDB 我遇到 MySQL 数据库查询问题 基本上我发现如果我索引一个特定的 varchar 50 字段tag name 我的查询比不索引字段花费的时间更长
  • 如何限制python上的用户输入长度?

    amt float input Please enter the amount to make change for 我希望用户输入美元金额 因此允许 5 个字符 00 00 有没有办法限制它 以便不允许他们输入超过 5 个字符 我不想要这
  • 从 Java 字符串末尾删除行尾字符

    我有一个字符串 我想仅使用 Java 从字符串的最末尾删除行尾字符 foo r nbar r nhello r nworld r n 我想成为 foo r nbar r nhello r nworld 这个问题与问题类似 但不一样59367
  • 错误 C2797:成员初始值设定项列表内的列表初始化

    我当时正在看MVA 的 C 教程我下面提到的代码是由凯特而不是我编写的 然而 她似乎在编译时没有显示任何错误 但在我的例子中 我收到以下错误 错误 1 错误 C2797 NamedRectangle name 列表初始化 内部成员初始值设定
  • AttributeError:使用自定义生成器在 Keras 模型上调用 fit 时,“tuple”对象没有属性“rank”

    我想构建一个具有两个输入的神经网络 用于图像数据和数字数据 所以我为此编写了自定义数据生成器 这train and validation数据框包含 11 列 image name 图像的路径 9个数字特征 target 项目的类 最后一列
  • 如何在Golang中使用COM(组件对象模型)

    我有一个 Windows DLL XA Session dll 文件 但我不知道如何在 golang 中使用它 这是DLL Viewer图片 我想使用ConnectServerCOM 方法 这是我的代码 package main impor
  • 使用对象解构赋值时,为什么属性“name”会转换为字符串? [复制]

    这个问题在这里已经有答案了 Given let obj name 1 console log typeof obj name obj name number 1 Why is name使用时将标识符强制转换为字符串var在对象解构赋值时 l
  • 如何检查文件是否正在被其他应用程序使用?

    我需要处理一个视频文件 并且需要在打开该文件之前完成该文件 因此 我需要在处理文件之前检查文件是否已打开 但已被另一个进程打开 知道如何检查吗 我正在使用Linux 如果没有任何额外的宝石 一个稍微浪费的方法可能是 if x lsof F
  • 使用 DateTime.TryParse() 检查多种日期格式

    我正在使用一种方法来验证文本框 public bool ValidateDateTimeTextBoxes params TextBox textBoxes DateTime value DateTime Today string date
  • 如果该行中的第一列为 null,实体框架将返回 null

    我在实体框架模型中看到了奇怪的行为 我有一个如下所示的查询 var rows from alarm in context Alarms join temp in context ListDetails on alarm ListDetail
  • 如何使用 Azure 函数 Node.js 读取 Json 文件

    我创建了一个Azure时间触发器函数 我想和他一起读取一个Json文件 我确实安装了 read json 和 jsonfile 软件包并尝试了两者 但它不起作用 这是一个示例函数 module exports function contex
  • 如何在 Chef 中扩展轻量级提供程序

    我正在创建一堆不同的 Chef 提供程序来部署不同类型的应用程序 厨师的文档扩展轻量级提供程序表明这是可能的 但实际上并没有说明要做什么 该页面表明也许可以调用mixin是需要的 但我不知道我的代码在下面的文件中应该有什么结构 librar
  • Testcafe - 在测试用例之外测试命令行参数

    随着我逐渐熟悉 Testcafe 我尝试使用命令行参数为用户提供有关如何运行测试的更多信息 因此 我正在使用minimist包裹 但是 我无法打印或使用测试用例之外的任何变量 请在下面找到我的代码 import Selector from
  • 如何设置DOCKER_HOST?

    我正在从这个链接做 django shop 教程 https django shop readthedocs io en latest tutorial quickstart html 我对 docker docker compose 和
  • 设置多边形颜色 Matplotlib

    我有 10 000 多个 Matplotlib Polygon 对象的列表 每个多边形属于 20 个组中的一组 我想通过将每个唯一的组映射到唯一的颜色来区分多边形属于哪个组 以下是我发现的一些与我的问题类似的帖子 在 python matp
  • 如何在pyqt中播放视频

    我想根据此功能中选择的文件来播放视频文件 def abrir QFileDialog getOpenFileName None Selecciona los medios os getcwd Video Files avi mp4 flv
  • Python GTK 拖放 - 获取 URL

    我正在创建一个小应用程序 必须能够接收 URL 如果应用程序窗口打开 我应该能够从浏览器中拖动链接并将其放入应用程序中 并且应用程序会将 URL 保存到数据库中 我正在 Python GTk 中创建它 但我对其中的拖放功能有点困惑 那么 怎