python – GTK标签包装在一个对话框中
发布时间:2020-11-17 06:18:00 所属栏目:Python 来源:互联网
导读:我正在尝试创建一个带有标签的不可调整大小的对话框.这个标签有很多文字,所以我想要它包装而不会使对话格宽阔. 出于某种原因,我无法找到让GTK允许这种情况发生的方法.我甚至找不到在对话框上设置最大宽度的方法,这将是很好的. 这是我的意思的一个运行的例子:
|
我正在尝试创建一个带有标签的不可调整大小的对话框.这个标签有很多文字,所以我想要它包装而不会使对话格宽阔. 出于某种原因,我无法找到让GTK允许这种情况发生的方法.我甚至找不到在对话框上设置最大宽度的方法,这将是很好的. 这是我的意思的一个运行的例子: #!/usr/bin/env python
#-*- coding:utf-8 -*-
from gi.repository import Gtk
class DialogExample(Gtk.Dialog):
def __init__(self,parent):
Gtk.Dialog.__init__(self,"My Dialog",parent,(Gtk.STOCK_CANCEL,Gtk.ResponseType.CANCEL,Gtk.STOCK_OK,Gtk.ResponseType.OK))
self.set_default_size(150,100)
self.set_resizable(False)
label = Gtk.Label("This is a dialog to display additional information,with a bunch of text in it just to make sure it will wrap enough for demonstration purposes")
label.set_line_wrap(True)
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_default_size(250,200)
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"
dialog.destroy()
win = DialogWindow()
win.connect("delete-event",Gtk.main_quit)
win.show_all()
Gtk.main()
解决方法我解决了这个问题(除了将换行设置为True),将Gtk.Label放入Gtk.Table中,使用FILL和SHRINK标志并为标签设置固定宽度.像这样的东西:label = Gtk.Label("This is a dialog to display additional information,with a bunch of text in it just to make sure it will wrap enough for demonstration purposes")
label.set_line_wrap(True)
label.set_size_request(250,-1) # 250 or whatever width you want. -1 to keep height automatic
table = Gtk.Table(1,1,False)
table.attach(label,Gtk.AttachOptions.SHRINK | Gtk.AttachOptions.FILL)
这应该够了吧 (编辑:哈尔滨站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- python – Jinja2中的宏递归
- import pyttsx在python 2.7中工作,但不在python3中
- ImportError:没有模块名称’matplotlib’Python 3.3
- 在Django中,如何在模板中以小写的am / pm显示时间?
- Python / Scipy – 将optimize.curve_fit的sigma实现到opti
- 导入处理/模块从python2更改为python3?
- python – PyTables批量获取和更新
- python – 重新分发字典值列表
- 在没有busywait的情况下在python中实现亚毫秒处理
- python – NLTK:如何遍历名词短语以返回字符串列表?
