相关疑难解决方法(0)

推广PyQt Widget

我正在使用PyQt并试图在QtDesigner中推广一个小部件.如果我在"头文件"字段中指定包含我的窗口小部件子类的文件的完整模块路径,我能够使它工作.

有没有更好的方法将QtDesigner中的窗口小部件提升为PyQt窗口小部件而无需指定完整的模块路径?

这是一个有希望说明我在说什么的例子:

/PythonModuleRoot/Ui/MainUi.py

from PyQt4 import QtCore, QtGui, uic
class MainUi(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.ui = uic.loadUi(os.path.join(os.path.dirname(__file__), 'MainUi.ui'), self)
Run Code Online (Sandbox Code Playgroud)

/PythonModuleRoot/Ui/CustomWidget.py

from PyQt4 import QtCore, QtGui, uic
class CustomWidget(QtGui.QWidget):
    def __init__(self, parent):
        QtGui.QWidget.__init__(self, parent)
Run Code Online (Sandbox Code Playgroud)

/PythonModuleRoot/Ui/MainUi.ui

在MainUi.ui中,我提升了一个小部件并将Header文件字段设置为:"PythonModuleRoot.Ui.CustomWidget".

python pyqt

10
推荐指数
1
解决办法
5458
查看次数

用于Qt Designer的python自定义Qt小部件

我正在尝试仅使用Python为Qt Designer编写自定义小部件.我正在关注我在网上找到的几个教程,但是没有一个是在工作或者我认为最接近工作的例子.

所以我的问题是:

  1. 在Qt Designer的Widget Box中出现了一个自定义小部件的步骤?
  2. 如果你可以节省时间:请提供一个最小的工作示例(比如一个带有标签的小部件,上面写着"一个真正最小的Qt自定义小部件示例").
  3. 或者是否可能根本不可能只包含使用python的自定义小部件?

python pyqt4 qt-designer pyside custom-widgets

8
推荐指数
1
解决办法
6930
查看次数

我在哪里为 Qt 设计器中的单个升级的 QWidget 编写类

我阅读、测试并理解了很多来自 Qt 设计器的 QWidgets 使用示例,这些示例已升级到 PyQt5。尽管如此,我无法为我自己处理一个简单的例子。

下面我展示了我的代码,该代码不起作用并尝试解释。

在 Qt 设计器中,我创建了一个简单的 QMainWindow,标准化命名为 MainWindow

我在其中创建了一个标签 QLabel。我将其提升为“neuLabel”类并将其命名为 labelqt。窗口包含 Add 、标题 neulabel.h 和 Promotion --> 一切都很好。

我明白,我必须为 neuLabel 类编写代码。但是:在哪里做呢?

通过非常简单的例子,我尝试了这样的操作:

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_())
Run Code Online (Sandbox Code Playgroud)

错误是这样的

Traceback (most …
Run Code Online (Sandbox Code Playgroud)

python pyqt qt-designer pyqt5 python-3.6

3
推荐指数
1
解决办法
2497
查看次数

标签 统计

python ×3

pyqt ×2

qt-designer ×2

custom-widgets ×1

pyqt4 ×1

pyqt5 ×1

pyside ×1

python-3.6 ×1