相关疑难解决方法(0)

使用pyside-uic生成Python代码

如何从QtDesigner文件生成python代码?我找到了pyside-uic但我找不到语法的例子.我用spyder运行win7和pythonxy.

python pyside

18
推荐指数
5
解决办法
4万
查看次数

PyQt5 到 PySide2,加载不同类中的 UI 文件

我有一个在 python3.6 下运行的 python 应用程序,并使用 PyQt5 加载 Ui 窗口。这些窗口是使用 Qt Designer 5.9.4 创建的。下面的代码显示了 PyQt5 的工作示例。

现在我想拥有完全相同的功能,但使用 PySide2。目前,我无法弄清楚如何加载 Ui 文件并在单独的类中使用其对象(按钮、表格等)。例如:通过单击第一个窗口/类中的按钮,会出现第二个窗口,其中的函数是在单独的类中定义的,请参阅示例。我找到的所有示例都只是加载一个 Ui 窗口,但没有展示如何使用它。有人可以帮忙吗?

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from PyQt5.uic import loadUiType  
from PyQt5 import QtGui, QtCore

Ui_FirstWindow, QFirstWindow = loadUiType('first_window.ui')
Ui_SecondWindow, QSecondWindow = loadUiType('second_window.ui')


class First(Ui_FirstWindow, QFirstWindow):

    def __init__(self):  
        super(First, self).__init__()
        self.setupUi(self)

        self.button.clicked.connect(self.show_second_window)

    def show_second_window(self):

        self.Second = Second()
        self.Second.show()


class Second(Ui_SecondWindow, QSecondWindow):

    def __init__(self):  
        super(Second, self).__init__()
        self.setupUi(self)


if __name__ == '__main__':

    app = QtWidgets.QApplication(sys.argv)

    main = First()
    main.show()

    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

python qt-designer pyqt5 pyside2

5
推荐指数
1
解决办法
5332
查看次数

PySide2 QUiLoader 返回一个空窗口

PySide2(5.6.0~a1) Qt UI 文件加载器返回一个空窗口,而 PyQt5 加载器工作正常。你能向我解释我哪里错了。

非工作 PySide2 版本:

import sys
from PySide2.QtWidgets import QDialog, QApplication
from PySide2 import QtUiTools

class AppWindow(QDialog):
    def __init__(self):
        super().__init__()
        self.ui = QtUiTools.QUiLoader().load("dialog1.ui")
        self.show()

app = QApplication(sys.argv)
w = AppWindow()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

工作 PyQt5 版本:

import sys
from PyQt5.QtWidgets import QDialog, QApplication
from PyQt5 import uic

class AppWindow(QDialog):
    def __init__(self):
        super().__init__()
        self.ui = uic.loadUi("dialog1.ui", self)
        self.show()

app = QApplication(sys.argv)
w = AppWindow()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

使用此功能也不起作用:

def loadUiWidget(uifilename, parent=None):
    loader = QtUiTools.QUiLoader()
    uifile = QtCore.QFile(uifilename)
    uifile.open(QtCore.QFile.ReadOnly)
    ui = …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqt5 pyside2

2
推荐指数
2
解决办法
3292
查看次数

标签 统计

python ×3

pyqt5 ×2

pyside2 ×2

pyqt ×1

pyside ×1

qt-designer ×1