程序运行出错~~
本帖最后由 清風 于 2024-2-10 22:45 编辑import sys
from PySide6.QtWidgets import QApplication, QDialog, QVBoxLayout, QLabel, QLineEdit, QPushButton, QMessageBox
from PySide6.QtCore import QDir, QStorageInfo
from PySide6.QtWidgets import QComboBox
class LoginDialog(QDialog):
def __init__(self):
super().__init__()
self.setWindowTitle("用户登录")
layout = QVBoxLayout()
account_label = QLabel("帐号:")
self.account_edit = QLineEdit()
layout.addWidget(self.password_edit)
# 在这里实现验证逻辑,验证帐号密码是否正确
if account == "admin" and password == "123456":
self.accept()
else:
print("用户名或密码错误!")
# 获取所有逻辑驱动器,并添加作为选项
drives =
main_dialog.folder_combo = QComboBox()
main_dialog.folder_combo.addItems(drives)
layout = QVBoxLayout()
layout.addWidget(QLabel("选择逻辑驱动器:"))
layout.addWidget(main_dialog.folder_combo)
main_dialog.setLayout(layout)
main_dialog.show()
sys.exit(app.exec())
运行后 下拉驱动器框,没有可选择内容。(就是看不到本机的C:\d:\ 这些,选择框是空的。 问题出在获取逻辑驱动器的部分。你需要调用`QStorageInfo.mountPoints()`方法来获取所有的逻辑驱动器。
你可以按照以下方式修改代码:
if __name__ == "__main__":
app = QApplication(sys.argv)
dialog = LoginDialog()
if dialog.exec() == QDialog.Accepted:
print("登录成功!")
main_dialog = QDialog()
main_dialog.setWindowTitle("主界面")
# 获取所有逻辑驱动器,并添加作为选项
drives =
main_dialog.folder_combo = QComboBox()
main_dialog.folder_combo.addItems(drives)
layout = QVBoxLayout()
layout.addWidget(QLabel("选择逻辑驱动器:"))
layout.addWidget(main_dialog.folder_combo)
main_dialog.setLayout(layout)
main_dialog.show()
sys.exit(app.exec())
现在运行程序,下拉框应该会显示所有的逻辑驱动器路径。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-2-10 22:41
问题出在获取逻辑驱动器的部分。你需要调用`QStorageInfo.mountPoints()`方法来获取所有的逻辑驱动器。
...
报错:
Traceback (most recent call last):
File "D:\Python\pythonProject\Wvqqm\界面\登录2.py", line 49, in <module>
drives =
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: type object 'PySide6.QtCore.QStorageInfo' has no attribute 'mountPoints'
回复请注意python格式。 清風 发表于 2024-02-10 22:43
报错:
Traceback (most recent call last):
File ...
非常抱歉,看起来您使用的是PySide6库的旧版本,该版本不支持`QStorageInfo.mountPoints()`方法。为了获取逻辑驱动器,您可以尝试使用`QDir.drives()`方法来替代。以下是修改后的代码:
import sys
from PySide6.QtWidgets import QApplication, QDialog, QVBoxLayout, QLabel, QComboBox
from PySide6.QtCore import QDir
if __name__ == "__main__":
app = QApplication(sys.argv)
main_dialog = QDialog()
main_dialog.setWindowTitle("主界面")
drives = QDir.drives() # 获取所有逻辑驱动器
main_dialog.folder_combo = QComboBox()
main_dialog.folder_combo.addItems()
layout = QVBoxLayout()
layout.addWidget(QLabel("选择逻辑驱动器:"))
layout.addWidget(main_dialog.folder_combo)
main_dialog.setLayout(layout)
main_dialog.show()
sys.exit(app.exec())
现在运行程序,下拉框应该会显示所有的逻辑驱动器路径。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]