from PyQt6.QtWidgets import *
from model.Department import Department
from view.main_window import Ui_Form
from model.Department import Department, Employee
class Homewidget(QWidget,Ui_Form):
def __init__(self):
QWidget.__init___(self)
self.setupUi(self)
self.depts = Department.get_all_depts()
self.load_depts
self.emps= Employee.get_all_emps()
self.load_emps
self.cb_depts.currentIndexChanged.connect(self.filter_emps_by_dept)
self.le_search.textChanged.connect(self.filter_emps_by_name)
def load_depts(self):
names = [d.dept_name for d in self.depts]
self.cb_depts.addItems(names)
def load_emps(self):
self.tb_emps.setRowCount(0)
for i, e in self.emps:
self.tb_emps.insertRow(i)
for j, info in enumerate(e.__dict__.values()):
self.tb_emps.setItem(i , j, QTableWidgetItem(str(info)))
def filter_emps_by_dept(self, idx):
self.load_emps()
if idx != 0:
dept = self.depts[idx - 1]
for i, e in enumerate(self.emps):
if e.dept_id != dept.dept_id:
self.tb_emps.hideRow(i)
def filter_emps_by_name(self):
self.load_emps()
query = self.le_search.text().lower()
if query != "":
for i , e in enumerate(self.emps):
if not e.emp_name.lower().startswith(query):
self.tb_emps.hideRow(i)}
app = QApplication([])
window = Homewidget()
window.show()
app.exec()
这是我在 m1 MacBook Pro Monetery can't run my GUI project for school 上遇到的错误。
PyQt6 在arm64 中默认提供,我不确定,但我认为我的软件是arm64e 我是osx idk 的新手 我该怎么办 我可以将软件从arm64e 更改为arm64 吗?
这是我在下面面临的错误......
ahmed@Ahmeds-MacBook-Pro hr_system % /usr/local/bin/python3 >/Users/ahmed/hr_system/app.py
回溯(最近一次调用最后一次):
文件“/Users/ahmed/hr_system/app.py”,第 1 行,位于
从 PyQt6.QtWidgets 导入 *
ImportError:>dlopen(/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/sit>e-packages/PyQt6/QtWidgets.abi3.so,0x0002):库未加载:>@rpath/QtWidgets .framework/版本/A/QtWidgets
引用自:>/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site->packages/PyQt6/QtWidgets.abi3.so
原因:尝试过:>'/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site->packages/PyQt6/Qt6/lib/QtWidgets.framework/Versions/A/QtWidgets' (mach-o >文件,但是是不兼容的架构(有'x86_64',需要'arm64e')),>'/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site->packages/PyQt6/Qt6 /lib/QtWidgets.framework/Versions/A/QtWidgets'(mach-o>文件,但是是一个不兼容的架构(有'x86_64',需要'arm64e')),>'/System/Library/Frameworks/QtWidgets.framework /Versions/A/QtWidgets'(没有>这样的文件)
仅供参考,您可以在 pypi.org 网站上查看可用的包文件(请参阅:https://pypi.org/project/PyQt6/#files https://pypi.org/project/PyQt6/#files).
macos .whl 文件(它只是一个 zip 文件)包含许多 .so 文件,它们都是双架构的(即它们包含 x86_64 和 arm64)。上面的链接确实包含您可以重建的“源”包,但您需要安装 XCode 和开发人员工具。
您不需要arm64e,M1 可以运行arm64 或arm64e 架构二进制文件。我怀疑还有其他问题。我会创建一个 venv,在其中安装所有内容,然后查找任何不支持 arm64 的 .so 文件。例如,与:
find . -name "*.so" -exec file {} \;
还要确保您没有运行一些非常旧版本的 PyQT6。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)