- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有时我们需要更多ResponseType
用于我们程序的对话框。例如,当用户关闭文件编辑器时,编辑器会显示对话框让用户选择:“取消”、“关闭而不保存”、“保存”但是“保存”和“关闭而不保存”在 Gtk.ResponseType
中不存在。那么我如何为此创建新的响应类型。这个问题可以用其他方法解决吗?
谢谢。
最佳答案
Gtk.ResponseType
它是一小组预定义值。这些是负值,而正值(包括零)则留给应用程序开发人员根据需要使用它们。来自 documentation :
Predefined values for use as response ids in Gtk.Dialog.add_button(). All predefined values are negative; GTK+ leaves values of 0 or greater for application-defined response ids.
因此,当您向对话框添加按钮时,您可以使用自己的一组响应值,而不是使用预定义的 Gtk.ResponseType。
我们以 this example 为例来自python-gtk3 tutorial并使用我们自己的响应类型值添加第三个选项:
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
class DialogExample(Gtk.Dialog):
def __init__(self, parent):
Gtk.Dialog.__init__(self, "My Dialog", parent, 0,
(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
Gtk.STOCK_OK, Gtk.ResponseType.OK, "OPTION 3", 1))
self.set_default_size(150, 100)
label = Gtk.Label("This is a dialog to display additional information")
box = self.get_content_area()
box.add(label)
self.show_all()
class DialogWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Dialog Example")
self.set_border_width(6)
button = Gtk.Button("Open dialog")
button.connect("clicked", self.on_button_clicked)
self.add(button)
def on_button_clicked(self, widget):
dialog = DialogExample(self)
response = dialog.run()
if response == Gtk.ResponseType.OK:
print("The OK button was clicked")
elif response == Gtk.ResponseType.CANCEL:
print("The Cancel button was clicked")
elif response == 1:
print("OPTION 3 was clicked")
dialog.destroy()
win = DialogWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
做了什么?
我们添加了第三个带有标签 OPTION 3 的按钮,其响应 ID 值为 1
:
Gtk.Dialog.__init__(self, "My Dialog", parent, 0,
(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
Gtk.STOCK_OK, Gtk.ResponseType.OK, "OPTION 3", 1))
然后,在处理响应时,我们可以检查该响应 id 值并执行不同的操作:
...
print("The Cancel button was clicked")
elif response == 1:
print("OPTION 3 was clicked")
...
您可以创建自己的积极响应值枚举集并根据需要使用它们(包括零)。祝你好运。
编辑:
在glade中,使用按钮时,可以将response_id
的值设置为整数。它位于小部件的常规设置选项卡中。
关于Python GTK 文件保存对话框,如何创建 "Close Without Saving"ResponseType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47583495/
我已经使用响应类型设置为“arraybuffer”的同步 XMLHttpRequest 来加载二进制文件并等待它加载已经有一段时间了。今天,我收到这个错误:“XMLHttpRequest 的响应类型属
我尝试从 api 下载图像(png)。我的问题是,由于某种原因,ionic/angular 只接受 json 文件。 return this.http.get(this.authKeys.server
我无法在 Angular 5 中发出接受 text/plain 作为响应的 POST 请求。 Angular 正在调用一个方法,该方法期望 JSON 作为响应,因此在尝试解析响应时出现响应时会抛出错误
我正在尝试编辑 Axios 的一个实例,以便响应类型应该是 'stream'而不是标准的 JSON。 从 S.O. 的其他帖子中,我似乎并不清楚。如何做到这一点。 这是死路一条?? 我当前的 Axio
我有一个 Angular 1.x 应用程序,它希望使用 $http.post() 接收二进制文件下载 (pdf)称呼。问题是,我想或者获得作为 json 发送的处理错误消息。我可以用配置做到这一点 h
我正在做一个项目,我有一个带有 Get(int id) 的基本 Controller , GetElements() , UpdateElement(int id, Element element)
我有一个带有 CRUD 操作的通用 WebApi Controller ,如下所示: public abstract class BaseController : ApiController wher
调用仅返回单个整数的 Web API REST 服务的“正确”方法是什么? 我在这里对 XML、JSON 或任何其他方面没有要求。对服务的调用只需要返回一个整数。 我在这里使用 ResponseTyp
为什么 responseType 是空的? JavaScript var xhr = new XMLHttpRequest(); xhr.open(method,url,true); xhr.onre
XHR的responseType='document'非常棒,因为它为您提供了一个 DOM 文档,您可以在该文档上使用 querySelector 等: var xhr = new XMLHttpRe
场景:在从 Angular7 进行 API 调用时,我正在调用 Node(通过 Express)并返回字符串类型的分块数据 - 我想捕获此字符串数据并将其显示为字符串 服务器端:从 Node 后端发送
我正在尝试将 a 从客户端流式传输到服务器端,以便稍后将视频返回流式传输到另一个客户端。 重点是: 如何从客户端 JavaScript 获取视频 block (可以发送到服务器)? 使用这段代码,例如
当我在 Visual Studio 中处理 Web 应用程序时,我的计算机意外崩溃了。结果我的 csproj 完全损坏,所以我不得不开始一个新的 Web 项目并重新添加旧项目中的所有文件和程序集。 但
考虑以下示例: [ActionName("SomeTestAction")] [ResponseType(typeof(SomeObject))] public IHttpActionResult S
我想知道浏览器是否支持XMLHttpRequest.responseType = "arraybuffer"。问题是,我无法再次测试某些“通用”xhr2 支持,因为 iOS 4.2 具有部分 xhr2
我的其余 Controller 类中有以下方法 @DeleteMapping("/delete/{id}") public ResponseEntity deleteMovieById(@PathVa
运行new XMLHttpRequest().responseType = "json"在控制台中会在 Firefox 26 和 IE11 中引发“InvalidStateError”异常,但在 Ch
在为即将进行的项目创建一个简单、可共享的 XHR 实现时,我突然想到了一个问题。 将 responseType 属性指定为 json 而不是 Content-Type header 有什么区别?如果我
使用 Google Chrome,假设我使用 ajax 将文件下载为 blob,如下所示: var xhr = new XMLHttpRequest(); xhr.open('GET', 'some/
我在尝试获取作为预约所需参加者的房间的 ResponseType 时遇到问题。我可以确认我的 exchange 2010 sp2 ru4 服务器立即批准或拒绝 session ,但是当我以编程方式使用
我是一名优秀的程序员,十分优秀!