gpt4 book ai didi

Python PyQt 程序结构

转载 作者:太空宇宙 更新时间:2023-11-03 18:41:51 24 4
gpt4 key购买 nike

我计划创建一个程序来执行以下操作:

  • 询问用户名/密码
  • 根据登录页面上的用户名,用户将看到 2 个不同的 GUI。也就是说,如果用户名在我的管理员列表中,则将向该用户显示管理页面。如果用户名在普通用户列表中,则会向用户展示其他相关页面。
  • 对于两者administratoruser界面中,将有一个带有多个工具按钮的工具栏,这些按钮将创建一个新的对话框窗口。

目前我的程序结构是一个像这样的类:

class MainWindow(QtGui.QMainWindow):
def__init__(self,parent=None):
------

def ShowLoginPage(self):
#this is the code to create login page GUI
----
----
button.clicked.connect(self.Process_login) # Submit button for username/password

def ShowAdminPage(self):
#this is the code to create admin page GUI
----
----

def ShowUserPage(self):
#this is the code to create user page GUI
----
----

def Process_login(self):
#this is the code to check if username is admin or user
if username in username_list:
self.ShowUserPage()
elif username in adminname_list:
self.ShowAdminPage()

两者ShowAdminPageShowUserPage方法实际上只是创建 2 个不同的 Central Widgets并设置它们。

我的问题是。

  1. 上述结构是否可以改进?就我个人而言,我真的不认为将所有内容都放在这样的一个类中是一个好主意。但我是初学者,我不知道可以使用哪种替代方式来创建它。
  2. 构建这样的多页面 GUI 程序时需要遵循哪些良好实践?

最佳答案

此代码非常适合此功能,但不要为管理员和普通用户创建centralWidgets,只需使用 QStackedWidget 。您可以在 QtDesigner 中设计 QStackedWidget 并显示 QStackedWidget 中的适当 Widget。根据登录的用户以及用户从管理员切换到普通用户以及从普通用户切换到管理员用户时,只需切换QStackedWidget中的小部件即可。 .

关于Python PyQt 程序结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20367809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com