【发布时间】:2016-08-03 07:32:49
【问题描述】:
我一直在查看 Pygubu 示例,试图最好地了解如何在没有成功的情况下实现我的目标。
我对python非常陌生,几天前才刚刚开始使用它。我有许多运行良好的函数并接受一系列变量来执行任务,但现在我想尝试创建一个 GUI 来在启动函数等之前处理输入。
因为我是新手,所以我想我会尝试 Pygubu,尤其是因为我使用的是 windows 机器。我查看了他们的示例并了解了如何加载我设计的MainWindow。
我的主窗口基本上是一个从 Panorama.ui 加载的菜单系统,它有几个按钮可以用来打开其他窗口(“SphericalWindow”、“Gigapixel_Window”和“Settings”)。
我玩过回调函数,在拉起messagebox 时效果很好,但是我卡住的是如何调用要打开的其他窗口之一。
我在How do I create child windows with Python tkinter? 看到一个关于打开子窗口的示例,但我不确定如何将其翻译为从 UI 文件中打开框架?
该示例将如何创建顶级窗口,例如下面被转换,以便 tk.Toplevel 是从 UI 文件构建的?
t = tk.Toplevel(self)
感谢您的帮助。
import sys
import os
try:
import tkinter as tk
from tkinter import messagebox
except:
import Tkinter as tk
import tkMessageBox as messagebox
sys.path.append(os.path.join(os.path.dirname(__file__), '../'))
import pygubu
class Myapp:
def __init__(self, master):
self.builder = builder = pygubu.Builder()
fpath = os.path.join(os.path.dirname(__file__),"Panorama.ui")
builder.add_from_file(fpath)
mainwindow = builder.get_object('MainWindow', master)
builder.connect_callbacks(self)
def on_Gigapixel_Click(self):
#Callback to open window here.
if __name__ == '__main__':
root = tk.Tk()
app = Myapp(root)
root.mainloop()
【问题讨论】: