python - Python GTK+ 3 - 无法在顶级小部件上设置父级
问题描述
Gtk-WARNING **: 19:18:52.313: Can't set a parent on a toplevel widget
为什么我会收到此警告?master win不是顶级小部件吗?我究竟做错了什么?master_win 不应该是顶级的吗?它首先被创建...
class PluginWindow(Gtk.Window):
def __init__(self):
super().__init__(title="Stack Demo")
#some stuff
master_win = Gtk.ScrolledWindow()
master_win.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.ALWAYS)
win = PluginWindow()
master_win.add(win)
win.connect("destroy", Gtk.main_quit)
master_win.show_all()
Gtk.main()
解决方案
您正在尝试将 Gtk.Window() 对象添加到 Gtk.ScrolledWindow() 对象中,这是不可能的。是颠倒的。
Gtk.Window 是一个可以包含其他小部件的顶级窗口。窗口通常具有受窗口系统控制的装饰,并允许用户操作窗口(调整窗口大小、移动窗口、关闭窗口……)。
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
class PluginWindow(Gtk.Window):
def __init__(self):
super().__init__(title="Stack Demo")
# some stuff
master_win = Gtk.ScrolledWindow()
master_win.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.ALWAYS)
win = PluginWindow()
# Gtk.ScrolledWindow added to Gtk.Window
win.add(master_win)
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()
推荐阅读
- angular - 使用服务层 HttpTestingController 进行 Angular 单元测试错误:预计未找到打开的请求 GET
- html - 如何使背景图像填充 div 并做出响应
- c# - 无法初始化模拟类的成员
- css - Laravel DataTables 基于值的颜色单元格?
- angular - 面临在 Json 值中为名称查找 id 的问题
- python - 当 slice 有一行结果时返回 pandas.DataFrame
- elasticsearch - Elasticsearch 中的映射爆炸
- javascript - Javascript 在移动设备上冻结身体(不允许任何滚动等)
- android - 有什么办法可以实现 Flutter 顶级小吃吧?
- apache - Apache 代理访问配置