我阅读、测试并理解了很多Qt中qwidget的使用示例设计器,升级为PyQt5。然而我无法应付
我自己的一个简单例子。下面我展示了我的代码,这是不工作,并试图解释。
在Qt设计中,我创建了一个简单的QMainWindow,命名为MainWindow在其中,我创建了一个标签QLabel。我把这个提升到“neulable”类把它命名为labelqt。窗口中有,Add,header neulable.h和promote–>
一切都很好。我明白,我必须为类标签编写代码。但是:去哪里
怎么办?
我举了一个非常简单的例子:
from PyQt5 import QtWidgets, uic
import sys
uifile_1 = 'testpromote.ui'
form_1, base_1 = uic.loadUiType(uifile_1)
class neuLabel(QLabel, QPixmap):
def __init__(self,title,pixmap,parent):
super().__init__(title,parent)
self.setAcceptDrops(True)
def mousePressEvent(self, e):
QLabel.mousePressEvent(self, e)
if e.button() == QtCore.Qt.LeftButton:
print('press')
class myApp(base_1, form_1):
def __init__(self):
super(base_1,self).__init__()
self.setupUi(self)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = myApp() #Dialog()
ex.show()
sys.exit(app.exec_())
The error is like this
Traceback (most recent call last):
File "/home/jf/PycharmProjects/myMuhaInp/testpromote.py", line 5, in <module>
form_1, base_1 = uic.loadUiType(uifile_1)
File "/usr/lib/python3/dist-packages/PyQt5/uic/__init__.py", line 201, in loadUiType
exec(code_string.getvalue(), ui_globals)
File "<string>", line 37, in <module>
ModuleNotFoundError: No module named 'neulabel'
我真的不明白,在哪里编写类标签(我真的
试过很多例子。(我发现,在任何一个例子中,都不是单一的
(小部件)
在所有代码都出现错误之前:为什么需要从
QLabel和QPixmap?我不明白重点,QLabel使用a
QPixmap(合成),QLabel不是QPixmap(固有)。
对于要升级的小部件,它必须有以下规则(我没有找到
在文档中:
小部件的构造函数必须具有单个参数,并且必须是父级。
类不能在使用它的同一个文件中,因为它可以创建循环导入。
*小部件促销表单要求提供2个数据:
1_提升的类名\必须是类的名称。
2文件标题文件必须是文件所在位置(C++中的自定义规则),文件名与类同名,但小写字母,但在Python中不符合。
例如,如果“FooClass”被放置为\u提升的类名\u和“a/b/c”或
“导入”将放在a.c.u的头文件中
所以请确认这是正确的。
示例:
综上所述,最简单的实现是创建一个.py
要升职的班级是:
新标签.py**
from PyQt5 import QtCore, QtWidgets
class NeuLabel(QtWidgets.QLabel):
def __init__(self, parent=None):
super().__init__(parent)
self.setAcceptDrops(True)
def mousePressEvent(self, e):
super().mousePressEvent(e)
if e.button() == QtCore.Qt.LeftButton:
print("press")
然后在.ui中,您必须在表单中填写以下内容,按“添加”按钮,然后是“升级”按钮
正在生成以下.ui:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="NeuLabel" name="label">
<property name="geometry">
<rect>
<x>120</x>
<y>160</y>
<width>251</width>
<height>191</height>
</rect>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>26</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<customwidgets>
<customwidget>
<class>NeuLabel</class>
<extends>QLabel</extends>
<header>neulabel</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
Then used in the main file:
import os
import sys
from PyQt5 import QtWidgets, uic
CURRENT_DIR = os.path.dirname(os.path.realpath(__file__))
uifile_1 = os.path.join(CURRENT_DIR, "testpromote.ui")
form_1, base_1 = uic.loadUiType(uifile_1)
class myApp(base_1, form_1):
def __init__(self):
super(base_1, self).__init__()
self.setupUi(self)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
ex = myApp()
ex.show()
sys.exit(app.exec_())
├── main.py
├── neulabel.py
└── testpromote.ui
在以前版本的firebase_auth:^0.5.4中,有一个选项user.uid(uid是字符串类型)。 在firebase_auth的最新版本中:^0.15.0 1,我应该选择哪个选项来获取user.uid或替换它。 有关 FirebaseAuth 0.12.0 中的重大更改的说明。 添加了新的AuthResult和AdditionalUserInfo类 破坏性更改:登录方法现在返回AuthR
本文向大家介绍JavaScript编写简单的计算器,包括了JavaScript编写简单的计算器的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript编写简单计算器的代码。分享给大家供大家参考。具体如下: 运行效果截图如下: 具体代码如下 js代码: 关于计算器的精彩文章请查看《计算器专题》 ,更多精彩等你来发现! 一个简单的计算器就是这样实现的,大家也可以利用javascri
问题内容: 我设计了10多个站点,但我仍然对“我应该使用正确的单位是什么”有个疑问。无论是px还是em或%。请引导我正确的方向 编辑1:用于版式(特别是对于容器盒) 问题答案: 根据上下文的不同单位。如果有一个最适合每种情况的单位,那么就不会有那么多单位。 按照经验法则: 如果您正在处理屏幕媒体: 使用的字体大小 使用的图像 使用,或表示盒子尺寸 线高使用比例 如果您使用打印介质: 最好避免(无论
我已经学习了Google设计指南。 我好好看看http://www.google.com/design/spec/material-design/introduction.html. 在web初学者工具包的github源代码中。但是,会有什么来源吗http://www.google.com/design/spec/material-design/introduction.html?
我可以读它,修改标志,然后写回来,但这是正确的方法吗? 我见过一些写线圈的命令,但我不太确定线圈是什么--是不是有点?如果是,如何得到线圈的地址?
谢谢你的回应。我检查了位置,它被标识为与ANDROID_SDK_HOME环境路径相同的位置。它仍然说根是未定义的。我创建了一个到相同位置的ANDROID_SDK_ROOT环境路径,但它仍然没有定义。