当前位置: 首页 > 面试题库 >

如何从Qt :: namesase(Qt5,Python3.x)导入?

颜嘉福
2023-03-14
问题内容

对于我的应用程序,我需要设置一些小部件参数,例如alignment(Qt::AlignBottom)和其他。但是我无法导入它们(其他PyQt5素材导入没有任何问题)。

使用此代码

from PyQt5 import Qt

progressBar = QProgressBar(splash)
progressBar.setAlignment(Qt.AlignBottom)

我收到以下错误:

Traceback (most recent call last):
  File "run_app.py", line 50, in <module>
    runSemApp(sys.argv)
  File "run_app.py", line 32, in runSemApp
    progressBar.setAlignment(Qt.AlignBottom)
AttributeError: 'module' object has no attribute 'AlignBottom'

并使用此作品:

from PyQt5.Qt import *

progressBar = QProgressBar(splash)
progressBar.setAlignment(Qt.AlignBottom)

尽管我有一个可行的解决方案,但我只想导入Qt.AlignBottom而不能*。另外,为什么不Qt.AlignBottom一起工作from PyQt5 import Qt


问题答案:

我认为这里的困惑在于PyQt有一个称为的特殊虚拟模块Qt,该模块将 所有内容
导入单个名称空间。这是一个非常有用的功能,但令人遗憾的QtCore.Qt是,没有避免与该名称发生冲突。

在第一个示例中,可以通过使用看起来有些奇怪的外观来“修复”错误Qt.Qt.AlignBottom。但是显然,显式导入QtCore是一个更好的解决方案。还值得注意的是,该PyQt5软件包是一个惰性加载器,因此import PyQt5将仅导入一个空的名称空间,而不能访问其他模块。



 类似资料:
  • Qt软件工具包包含了编译桌面或者嵌入式应用程序的工具。最新的版本可以从Qt-Project下载。我们将使用这种方法开始。 软件工具包自身包含了一个维护工具允许你更新到最新版本的软件工具包。 Qt软件工具包非常容易安装,并且附带了一个它自身的快速集成开发环境叫做Qt Creator。这个集成开发环境可以让你高效的使用Qt进行开发,我们推荐给所有的读者使用。在任何情况下Qt都可以通过命令的方式来编译,

  • 问题内容: 在Python中,我不太清楚以下两行代码之间的区别: 要么 他们不是都只是从模块X导入所有内容吗?有什么不同? 问题答案: 之后,你可以参考的东西一样。之后,您可以像一样直接引用事物。因为第二种形式将名称直接导入到本地名称空间,所以如果您从许多模块中导入内容,则可能会产生冲突。因此,不鼓励使用。 您也可以执行,仅将导入到本地名称空间,而不导入中的所有内容。这样做会更好,因为如果您列出了

  • 我自己写了一个多进程下载网络大文件的程序:基本思路是多进程分块下载完后,再拼接文件。 这个url的大文件被分割成20个部分,开启了4个进程下载。 测试运行: python3 mpdown.py #速度比单进程快50%以上。 现在我有点不满意这个多进程下载,拼接文件(merge)是在全部下载完成后,再拼接,我想这个拼接动作也修改成多进程并行的,边下载边拼接。 由于下载是多进程的,各进程存在一定的竞争

  • 我正在使用Qt框架编写一个C应用程序,该应用程序需要从源锻造下载文件。 我必须下载这个文件https://sourceforge.net/projects/meshlab/files/updates/1.3.3/updates.xml 我使用Qt和QHttp类编写了以下代码: QHttp::设置主机和 QHttp::获取都不会阻止函数立即返回一个整数 ID。当 http 文件传输完成后,将自动调用

  • 喜马拉雅FM专辑下载器,支持付费专辑,使用Go+Qt5编写(非Qt Binding) 截图              

  • 导语 上一节已经安装好Qt 5.2,并将一个Qt 4程序迁移到了Qt 5上。其中我们讲到Qt 5中QApplication类已经不在QtGui模块中了,而且所有的Qt 5图形界面程序都必须在.pro项目文件中添加widgets模块。那么到底Qt 5中对模块进行了哪些改动,Qt 5的框架又是怎样的?这一节将和大家一起看一下这些内容。 环境:Windows 7 + Qt 5.2.0+QtCreator