- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我首先使用 tkinter 创建了两个 Python 类。我有三个变量在第一类 UserLogin 中存储不同的数据。我希望能够访问和使用另一个类 HomePage(也在同一个文件中)中的两个变量中的值。目标是根据用户级别,我想显示某些小部件。换句话说,每个用户在登录时只能看到一定数量的小部件,这是由其用户级别决定的。 HomePage 类是包含要显示的小部件的窗口,而第一类是登录窗口。我这里有一个较短版本的代码。我无法发布所有代码,因此使用了这个较短的版本。
import backend
class UserLogin:
def __init__(self, top):
self.top = top
'''This class configures and populates the toplevel window.
top is the toplevel containing window.'''
_bgcolor = '#d9d9d9' # X11 color: 'gray85'
_fgcolor = '#000000' # X11 color: 'black'
_compcolor = '#d9d9d9' # X11 color: 'gray85'
_ana1color = '#d9d9d9' # X11 color: 'gray85'
_ana2color = '#ececec' # Closest X11 color: 'gray92
top.geometry("676x450+458+150")
top.title("Some title here")
top.configure(background="#d9d9d9")
top.configure(highlightbackground="#d9d9d9")
top.configure(highlightcolor="black")
username = StringVar()
password = StringVar()
def user_login():
if len(username.get()) != 0 and len(password.get()) != 0:
result = backend.log(username.get())
if not result:
self.messageBox.delete('1.0', END)
self.messageBox.insert(END, 'Invalid Login')
else:
level = result[0]
user_name = result[1]
pass_word = result[2]
if user_name == username.get() and pass_word == password.get():
new_window()
else:
self.messageBox.delete('1.0', END)
self.messageBox.insert(END, 'Invalid Login')
else:
self.messageBox.delete('1.0', END)
self.messageBox.insert(END, 'Username and Password required')
# This function opens the window created in Class HomePage
def new_window():
self.newWindow = Toplevel(self.top)
login = HomePage(self.newWindow)
class HomePage
class HomePage:
def __init__(self, top):
self.top = top
'''This class configures and populates the toplevel window.
top is the toplevel containing window.'''
_bgcolor = '#d9d9d9' # X11 color: 'gray85'
_fgcolor = '#000000' # X11 color: 'black'
_compcolor = '#d9d9d9' # X11 color: 'gray85'
_ana1color = '#d9d9d9' # X11 color: 'gray85'
_ana2color = '#ececec' # Closest X11 color: 'gray92'
self.style = ttk.Style()
if sys.platform == "win32":
self.style.theme_use('winnative')
self.style.configure('.',background=_bgcolor)
self.style.configure('.',foreground=_fgcolor)
self.style.configure('.',font="TkDefaultFont")
self.style.map('.',background=
[('selected', _compcolor), ('active',_ana2color)])
top.geometry("903x568+392+150")
top.title("Some title here")
top.configure(background="#d9d9d9")
top.configure(highlightbackground="#d9d9d9")
top.configure(highlightcolor="black")
self.linksFrame = Frame(top)
self.linksFrame.place(relx=0.035, rely=0.052, relheight=0.875
, relwidth=0.272)
self.linksFrame.configure(relief='groove')
self.linksFrame.configure(borderwidth="2")
self.linksFrame.configure(relief='groove')
self.linksFrame.configure(background="#d9d9d9")
self.linksFrame.configure(highlightbackground="#d9d9d9")
self.linksFrame.configure(highlightcolor="black")
self.linksFrame.configure(width=235)
# Then I want to be able to say here that:
self.registerPat = Button(self.linksFrame)
self.registerPat.place(relx=0.043, rely=0.079, height=34, width=217)
self.registerPat.configure(activebackground="#ececec")
self.registerPat.configure(activeforeground="#000000")
self.registerPat.configure(background="#d9d9d9")
self.registerPat.configure(disabledforeground="#a3a3a3")
self.registerPat.configure(foreground="#000000")
self.registerPat.configure(highlightbackground="#d9d9d9")
self.registerPat.configure(highlightcolor="black")
self.registerPat.configure(pady="0")
self.registerPat.configure(relief='groove')
self.registerPat.configure(text='''Register Patient''')
最佳答案
这个问题对我来说不太清楚,我看到您定义了变量但对值进行了硬编码。请尝试修复提供的代码以便更好地理解代码。一种实现您想要的方法是使 HomePage
类继承自 UserLogin
,这样您就可以在 Homepage 中获取 Userlogin 的变量。示例:
class Parent:
def __init__(self):
self.name = "Mart"
self.age = 40
self.height = 170
class Child(Parent):
def show_info(self):
print(self.name, self.age, self.height)
现在,如果我们定义了 test = Child()
然后定义了 test.show_info()
,这将打印 Parent 类中定义的值。
关于python - 如何在另一个类中访问和使用一个Python类中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56303205/
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: How to nest OR statements in JavaScript? 有没有办法做到这一点:
在 JavaScript 中有没有办法让一个变量总是等于一个变量?喜欢var1 = var2但是当var2更新,也是var1 . 例子 var var1 = document.getElementBy
我正在努力理解这代表什么 var1 = var2 == var3 我的猜测是这等同于: if (var2 == var3): var1 = var2 最佳答案 赋值 var1 = var2
这个问题已经有答案了: What does the PHP error message "Notice: Use of undefined constant" mean? (2 个回答) 已关闭 8
我在临时表中有几条记录,我想从每条记录中获取一个值并将其添加到一个变量中,例如 color | caption -------------------------------- re
如何将字符串转为变量(字符串变量--> $variable)? 或者用逗号分隔的变量列表然后转换为实际变量。 我有 2 个文件: 列名文件 行文件 我需要根据字符串匹配行文件中的整行,并根据列名文件命
我有一个我无法解决的基本 php 问题,我也想了解为什么! $upperValueCB = 10; $passNodeMatrixSource = 'CB'; $topValue= '$uppe
这可能吗? php $variable = $variable1 || $variable2? 如果 $variable1 为空则使用 $variable2 是否存在类似的东西? 最佳答案 PHP 5
在 Perl 5.20 中,for 循环似乎能够修改模块作用域的变量,但不能修改父作用域中的词法变量。 #!/usr/bin/env perl use strict; use warnings; ou
为什么这不起作用: var variable; variable = variable.concat(variable2); $('#lunk').append(variable) 我无法弄清楚这一点
根据我的理解,在32位机器上,指针的sizeof是32位(4字节),而在64位机器上,它是8字节。无论它们指向什么数据类型,它们都有固定的大小。我的计算机在 64 位上运行,但是当我打印包含 * 的大
例如: int a = 10; a += 1.5; 这运行得很完美,但是 a = a+1.5; 此作业表示类型不匹配:无法从 double 转换为 int。所以我的问题是:+= 运算符 和= 运算符
您好,我写了这个 MySQL 存储过程,但我一直收到这个语法错误 #1064 - You have an error in your SQL syntax; check the manual that
我试图在我的场景中显示特定的奖牌,这取决于你的高分是基于关卡的目标。 // Get Medal Colour if levelHighscore goalScore { sc
我必须维护相当古老的 Visual C++ 源代码的大型代码库。我发现代码如下: bIsOk = !!m_ptr->isOpen(some Parameters) bIsOk的数据类型是bool,is
我有一个从 MySQL 数据库中提取的动态产品列表。在 list 上有一个立即联系 按钮,我正在使用一个 jquery Modal 脚本,它会弹出一个表单。 我的问题是尝试将产品信息变量传递给该弹出窗
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: What is the difference between (type)value and type(va
jQuery Core Style Guidelines建议两种不同的方法来检查变量是否已定义。 全局变量:typeof variable === "undefined" 局部变量:variable
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: “Variable” Variables in Javascript? 我想肯定有一种方法可以在 JavaScrip
在语句中使用多重赋值有什么优点或缺点吗?在简单的例子中 var1 = var2 = true; 赋值是从右到左的(我相信 C# 中的所有赋值都是如此,而且可能是 Java,尽管我没有检查后者)。但是,
我是一名优秀的程序员,十分优秀!