PySide6百炼成真(3)
QtDesigner
关于这一整个界面的空间和属性可以自行尝试或者查看官方文档.
如果你去网上搜索那大概率会看到pyside6得用指令转换.py
其实可以动态加载.ui文件,就不需要转换成.py文件了,修改ui后也无需再转换成.py文件
from PySide6.QtWidgets import QApplication, QMessageBox
from PySide6.QtUiTools import QUiLoader
# 在QApplication之前先实例化
uiLoader = QUiLoader()
class Stats:
def __init__(self):
# 再加载界面
self.ui = uiLoader.load('main.ui')
# 其它代码 ...
app = QApplication([])
stats = Stats()
stats.ui.show()
app.exec() # PySide6 是 exec 而不是 exec_
from PySide6.QtUiTools import QUiLoader
from PySide6.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget, QLineEdit
from PySide6.QtCore import Qt
import os
# 在QApplication之前先实例化
uiLoader = QUiLoader()
class MyWindow(QWidget):
def __init__(self):
super().__init__()
class Stats:
def __init__(self):
# 构建 UI 文件的路径
ui_file_path = os.path.join(os.path.dirname(__file__), 'ui', 'test.ui')
# 检查文件是否存在
if not os.path.exists(ui_file_path):
raise FileNotFoundError(f"UI file '{ui_file_path}' not found.")
# 再加载页面
self.ui = uiLoader.load(ui_file_path)
if __name__ == '__main__':
app = QApplication([])
try:
stats = Stats()
stats.ui.show()
except FileNotFoundError as e:
print(e)
except RuntimeError as e:
print(f"Error loading UI: {e}")
app.exec()
也可以这样:
from PySide6.QtUiTools import QUiLoader
from PySide6.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget, QLineEdit
from PySide6.QtCore import Qt
import os
# 在QApplication之前先实例化
uiLoader = QUiLoader()
class MyWindow(QWidget):
def __init__(self):
super().__init__()
class Stats:
def __init__(self):
# 直接使用相对路径
ui_file_path = 'ui/test.ui'
# 检查文件是否存在
if not os.path.exists(ui_file_path):
raise FileNotFoundError(f"UI file '{ui_file_path}' not found.")
# 再加载页面
self.ui = uiLoader.load(ui_file_path)
if __name__ == '__main__':
app = QApplication([])
try:
stats = Stats()
stats.ui.show()
except FileNotFoundError as e:
print(e)
except RuntimeError as e:
print(f"Error loading UI: {e}")
app.exec()
三个窗体界面
大家想象一下你走在我们的高速公路上,我们的高速公路一共有几种车?跟我们的窗体一样一共三种,特车,轿车跟我们的卡车,这在告示牌上可以看见,那这个跟我们要学习的窗体有什么关系呢?实际上我们的窗体跟我们告示牌,不同窗体有不同的责任,QMianWindow(它有自己的布局,自带很多东西,菜单栏,消息区…),QWidegt(小白轻松上手的窗体),QDialog(可以把窗口置顶,对话框,如果你有浏览过一些网站比如是否年满xx岁如果你不点击那么你是点不了地方的,叫模态窗口),一般都是用QWidget,除非大项目用QMainWindow