鱼C论坛

 找回密码
 立即注册
查看: 351|回复: 4

[已解决]新手求助!

[复制链接]
发表于 2024-3-9 20:41:29 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 清風 于 2024-3-9 22:56 编辑

我重新考虑一下再来
最佳答案
2024-3-9 21:44:02
不要设置权限!

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-9 20:42:03 | 显示全部楼层
好的,下面是使用Python PyQt6构建两个窗体的示例代码:

  1. import sys
  2. from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QLineEdit, QPushButton, QProgressBar, QMessageBox, QMainWindow, QTextEdit, QComboBox
  3. from PyQt6.QtCore import Qt

  4. # 定义基础类
  5. class BaseWindow(QWidget):
  6.     def __init__(self):
  7.         super().__init__()
  8.         self.setWindowTitle("基础窗体")
  9.         
  10.         # ESC事件处理
  11.         self.setWindowFlag(Qt.WindowType.WindowStaysOnTopHint)
  12.    
  13.     def keyPressEvent(self, event):
  14.         if event.key() == Qt.Key.Key_Escape:
  15.             self.close()
  16.    
  17.     def closeEvent(self, event):
  18.         reply = QMessageBox.question(self, '确认退出', '是否确认退出程序?', QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No)
  19.         if reply == QMessageBox.StandardButton.Yes:
  20.             event.accept()
  21.         else:
  22.             event.ignore()

  23. # 定义A窗体
  24. class AWindow(BaseWindow):
  25.     def __init__(self):
  26.         super().__init__()
  27.         self.setStyleSheet("background-color: lightblue;")
  28.         self.resize(1440, 900)
  29.         
  30.         # 弹出对话框
  31.         reply = QMessageBox.question(self, '欢迎使用', '是否开始使用本系统?', QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No)
  32.         if reply == QMessageBox.StandardButton.No:
  33.             self.close()
  34.             return
  35.         
  36.         # 垂直布局(1)
  37.         layout1 = QVBoxLayout()
  38.         self.setLayout(layout1)

  39.         # 创建标签
  40.         label1 = QLabel("欢迎")
  41.         label2 = QLabel("使用本系统")
  42.         layout1.addWidget(label1)
  43.         layout1.addWidget(label2)
  44.         layout1.setAlignment(Qt.AlignmentFlag.AlignCenter)

  45.         # 垂直布局(2)
  46.         layout2 = QVBoxLayout()
  47.         self.setLayout(layout2)

  48.         # 创建用户名、密码框和登录按钮
  49.         username_label = QLabel("用户名")
  50.         password_label = QLabel("密码")
  51.         username_input = QLineEdit()
  52.         password_input = QLineEdit()
  53.         login_button = QPushButton("登录")
  54.         layout2.addWidget(username_label)
  55.         layout2.addWidget(username_input)
  56.         layout2.addWidget(password_label)
  57.         layout2.addWidget(password_input)
  58.         layout2.addWidget(login_button)
  59.         layout2.setAlignment(Qt.AlignmentFlag.AlignCenter)

  60.         # 垂直布局(3)
  61.         layout3 = QVBoxLayout()
  62.         self.setLayout(layout3)

  63.         # 创建载入中标签和进度条
  64.         loading_label = QLabel("载入中,请稍候…")
  65.         progress_bar = QProgressBar()
  66.         layout3.addWidget(loading_label)
  67.         layout3.addWidget(progress_bar)

  68.         # 垂直布局(4)
  69.         layout4 = QVBoxLayout()
  70.         self.setLayout(layout4)

  71.         # 创建选项调整、帮助和退出按钮
  72.         settings_button = QPushButton("选项调整")
  73.         help_button = QPushButton("帮助")
  74.         exit_button = QPushButton("退出")
  75.         layout4.addWidget(settings_button)
  76.         layout4.addWidget(help_button)
  77.         layout4.addWidget(exit_button)
  78.         layout4.setAlignment(Qt.AlignmentFlag.AlignBottom | Qt.AlignmentFlag.AlignRight)

  79. # 定义B窗体
  80. class BWindow(BaseWindow):
  81.     def __init__(self):
  82.         super().__init__()
  83.         self.setStyleSheet("background-color: lightblue;")
  84.         self.resize(1440, 900)
  85.         
  86.         # 垂直布局
  87.         layout = QVBoxLayout()
  88.         self.setLayout(layout)

  89.         # 创建13个按钮和一个退出按钮
  90.         for i in range(1, 14):
  91.             button = QPushButton("按钮{}".format(i))
  92.             layout.addWidget(button)

  93.         exit_button = QPushButton("退出")
  94.         layout.addWidget(exit_button)
  95.         layout.setAlignment(Qt.AlignmentFlag.AlignLeft)

  96.         # 创建textEdit和comboBox
  97.         text_edit1 = QTextEdit()
  98.         text_edit2 = QTextEdit()
  99.         text_edit3 = QTextEdit()
  100.         combo_box = QComboBox()
  101.         layout.addWidget(text_edit1)
  102.         layout.addWidget(text_edit2)
  103.         layout.addWidget(text_edit3)
  104.         layout.addWidget(combo_box)
  105.         layout.setAlignment(Qt.AlignmentFlag.AlignRight)


  106. if __name__ == "__main__":
  107.     app = QApplication(sys.argv)
  108.    
  109.     a_window = AWindow()
  110.     b_window = BWindow()
  111.    
  112.     a_window.show()
  113.    
  114.     sys.exit(app.exec())
复制代码


这是一个简单的示例,供参考。注意,由于PyQt6仍然是开发中的版本,可能存在一些不稳定或变动的地方。如果您遇到问题,请先查看官方文档或访问PyQt6的相关论坛寻求帮助。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-9 20:50:26 From FishC Mobile | 显示全部楼层
FishC 发表于 2024-3-9 20:42
好的,下面是使用Python PyQt6构建两个窗体的示例代码:



请加入用户名和密码录入界面及判断代码….
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-9 20:51:10 | 显示全部楼层
清風 发表于 2024-03-09 20:50
请加入用户名和密码录入界面及判断代码….


好的,我已经更新了代码,加入了用户名和密码录入界面以及相关的判断代码。请看下面的代码:

  1. import sys
  2. from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QLineEdit, QPushButton, QProgressBar, QMessageBox
  3. from PyQt6.QtCore import Qt

  4. # 定义基础类
  5. class BaseWindow(QWidget):
  6.     def __init__(self):
  7.         super().__init__()
  8.         self.setWindowTitle("基础窗体")
  9.         
  10.         # ESC事件处理
  11.         self.setWindowFlag(Qt.WindowType.WindowStaysOnTopHint)
  12.         def keyPressEvent(self, event):
  13.             if event.key() == Qt.Key.Key_Escape:
  14.                 self.close()
  15.                
  16.         def closeEvent(self, event):
  17.             reply = QMessageBox.question(self, '确认退出', '是否确认退出程序?', QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No)
  18.             if reply == QMessageBox.StandardButton.Yes:
  19.                 event.accept()
  20.             else:
  21.                 event.ignore()

  22. # 定义A窗体
  23. class AWindow(BaseWindow):
  24.     def __init__(self):
  25.         super().__init__()
  26.         self.setStyleSheet("background-color: lightblue;")
  27.         self.resize(1440, 900)
  28.         
  29.         # 弹出对话框
  30.         reply = QMessageBox.question(self, '欢迎使用', '是否开始使用本系统?', QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No)
  31.         if reply == QMessageBox.StandardButton.No:
  32.             self.close()
  33.             return
  34.         
  35.         # 垂直布局(1)
  36.         layout1 = QVBoxLayout(self)
  37.         self.setLayout(layout1)

  38.         # 创建标签
  39.         label1 = QLabel("欢迎")
  40.         label2 = QLabel("使用本系统")
  41.         layout1.addWidget(label1)
  42.         layout1.addWidget(label2)
  43.         layout1.setAlignment(Qt.AlignmentFlag.AlignCenter)

  44.         # 垂直布局(2)
  45.         layout2 = QVBoxLayout()
  46.         self.setLayout(layout2)

  47.         # 创建用户名、密码框和登录按钮
  48.         username_label = QLabel("用户名")
  49.         password_label = QLabel("密码")
  50.         self.username_input = QLineEdit()
  51.         self.password_input = QLineEdit()
  52.         self.login_button = QPushButton("登录")
  53.         layout2.addWidget(username_label)
  54.         layout2.addWidget(self.username_input)
  55.         layout2.addWidget(password_label)
  56.         layout2.addWidget(self.password_input)
  57.         layout2.addWidget(self.login_button)
  58.         layout2.setAlignment(Qt.AlignmentFlag.AlignCenter)

  59.         # 绑定登录按钮的点击事件
  60.         self.login_button.clicked.connect(self.login)

  61.     def login(self):
  62.         username = self.username_input.text()
  63.         password = self.password_input.text()

  64.         # 检查用户名和密码
  65.         if username == "admin" and password == "123456":
  66.             self.loading()
  67.         else:
  68.             QMessageBox.warning(self, "登录失败", "用户名或密码错误!")

  69.     def loading(self):
  70.         # 垂直布局(3)
  71.         layout3 = QVBoxLayout()
  72.         self.setLayout(layout3)

  73.         # 创建载入中标签和进度条
  74.         loading_label = QLabel("载入中,请稍候…")
  75.         self.progress_bar = QProgressBar()
  76.         layout3.addWidget(loading_label)
  77.         layout3.addWidget(self.progress_bar)

  78.         # 设置进度条属性
  79.         self.progress_bar.setMinimum(0)
  80.         self.progress_bar.setMaximum(100)
  81.         self.progress_bar.setValue(0)

  82.         # 模拟加载过程
  83.         for i in range(101):
  84.             self.progress_bar.setValue(i)
  85.             QApplication.processEvents()  # 刷新界面,防止界面卡住
  86.             if i == 100:
  87.                 self.close()
  88.                 b_window.show()

  89. # 定义B窗体
  90. class BWindow(BaseWindow):
  91.     def __init__(self):
  92.         super().__init__()
  93.         self.setStyleSheet("background-color: lightblue;")
  94.         self.resize(1440, 900)
  95.         
  96.         # 垂直布局
  97.         layout = QVBoxLayout(self)
  98.         self.setLayout(layout)

  99.         # 创建13个按钮和一个退出按钮
  100.         for i in range(1, 14):
  101.             button = QPushButton("按钮{}".format(i))
  102.             layout.addWidget(button)
  103.         exit_button = QPushButton("退出")
  104.         layout.addWidget(exit_button)
  105.         layout.setAlignment(Qt.AlignmentFlag.AlignLeft)

  106. if __name__ == "__main__":
  107.     app = QApplication(sys.argv)

  108.     a_window = AWindow()
  109.     b_window = BWindow()

  110.     a_window.show()

  111.     sys.exit(app.exec())
复制代码


在A窗体中,我们添加了用户名和密码的输入框以及登录按钮。当用户点击登录按钮时,会检查用户名和密码是否正确。如果正确,会调用`loading()`方法来显示进度条。在`loading()`方法中,我们使用for循环模拟加载过程,并通过`setValue()`方法更新进度条的值。当进度条达到100时,关闭A窗体并打开B窗体。

请注意,此代码仅供参考,并可能需要根据您的实际需求进行修改和调整。如果遇到任何问题,请随时向我提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-9 21:44:02 | 显示全部楼层    本楼为最佳答案   
不要设置权限!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-28 04:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表