PyQt加载UI文件
1.动态加载
import sys
from PySide6 import QtCore,QtWidgets
from PySide6.QtWidgets import *
from PySide6.QtUiTools import QUiLoader
class readfile(QWidget):
def __init__(self):
super().__init__()
self.ui=QUiLoader().load("test.ui",self)
self.__create_connections()
def __create_connections(self):
self.ui.pushButton.clicked.connect(self.open_file)
def open_file(self):
fname,_ = QFileDialog.getOpenFileName(self,"打开文件", '.')
if fname:
self.ui.lineEdit.setText(fname)
with open(fname,'r') as f:
content = f.read()
self.ui.textBrowser.setText(str(content))
if __name__ == '__main__':
#QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
#QApplication.setAttribute(Qt.AA_ShareOpenGLContexts)
app = QApplication(sys.argv)
w = readfile()
w.show()
sys.exit(app.exec())
2.使用QFile加载
import sys
from PySide6 import QtCore,QtWidgets
from PySide6.QtWidgets import *
from PySide6.QtCore import QFile
from PySide6.QtUiTools import QUiLoader
class readfile(QWidget):
def __init__(self):
super().__init__()
qfile=QFile("test.ui")
qfile.open(QFile.ReadOnly)
qfile.close()
self.ui=QUiLoader().load(qfile,self)
self.__create_connections()
def __create_connections(self):
self.ui.pushButton.clicked.connect(self.open_file)
def open_file(self):
fname,_ = QFileDialog.getOpenFileName(self,"打开文件", '.')
if fname:
self.ui.lineEdit.setText(fname)
with open(fname,'r') as f:
content = f.read()
self.ui.textBrowser.setText(str(content))
if __name__ == '__main__':
#QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
#QApplication.setAttribute(Qt.AA_ShareOpenGLContexts)
app = QApplication(sys.argv)
w = readfile()
w.show()
sys.exit(app.exec())
动态加载出有错误信息,但不影响运行
错误信息如下:
qt.pysideplugin: Environment variable PYSIDE_DESIGNER_PLUGINS is not set, bailing out.
qt.pysideplugin: No instance of QPyDesignerCustomWidgetCollection was found.
Qt WebEngine seems to be initialized from a plugin. Please set Qt::AA_ShareOpenGLContexts using QCoreApplication::setAttribute and QSGRendererInterface::OpenGLRhi using QQuickWindow::setGraphicsApi before constructing QGuiApplication.