我见过的大多数示例中的Variable classes都是在没有显式父级(例如(function (exports, require, module, __filename, __dirname) { import * as Web3 from 'web3';
^^^^^^
SyntaxError: Unexpected token import
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:607:28)
at Object.Module._extensions..js (module.js:654:10)
at Module.load (module.js:556:32)
at tryModuleLoad (module.js:499:12)
at Function.Module._load (module.js:491:3)
at Function.Module.runMain (module.js:684:10)
at startup (bootstrap_node.js:187:16)
at bootstrap_node.js:608:3
)的情况下实例化的,我认为大多数其他小部件(如果不是全部)都默认为当前var = tk.StringVar()
实例,通常放在变量Tk
中。这就是为什么我不确定它的父母是否只需要(通常是当前的,唯一的)root
实例,或者它是否可以任何小部件。
变量类的父级是否必须是Tk实例?另外,下面这个类的任何属性有什么问题吗?:
Tk
答案 0 :(得分:1)
它可以是任何小部件,但除了根小部件之外,它没有任何优势。 select CVID, CID, sum(case when QID = 67554 then LCD else 0 end) as [67554],
sum(case when QID = 67555 then LCD else 0 end) as [67555],
sum(case when QID = 67556 then LCD else 0 end) as [67556],
sum(case when QID = 67557 then LCD else 0 end) as [67557]
from test1
group by CVID, CID;
类(从Variable
等继承)的实现只是使用给定的master来查找根窗口。根窗口是它实际关注的全部内容,一旦它知道根窗口,它就不会使用主窗口进行其他任何操作。
答案 1 :(得分:0)
否,父母不需要成为Tk实例。
在source code中所有上述类及其超类Variable
的文档字符串中,有一行:
...
def __init__(self, master=None, value=None, name=None):
"""Construct a string variable.
MASTER can be given as master widget.
...
其中我假设MASTER
引用了参数master
,表明master可能是一个虚构的小部件,所以我假设master
为变量类可以成为任何小部件。
我认为任何变量类实例都没有任何错误,尽管有些可能过于明确,而且在大多数情况下大多数都是冗余的。
话虽如此,在提供的代码中,虽然所有这些都没问题(小部件无论如何都不能存在Tk
实例),我相信self.var1 = tk.BooleanVar(self)
是最好的结构根据OOP实例化它的方法,因为它允许最多self
- 包含的方法:
try:
import tkinter as tk
except:
import Tkinter as tk
class MyEntry(tk.Entry):
def __init__(self, master, *args, **kwargs):
tk.Entry.__init__(self, master, *args, **kwargs)
self.var1 = tk.BooleanVar(self)
if __name__ == '__main__':
root = tk.Tk()
entry = MyEntry(root)
entry.pack()
root.mainloop()