Pyside2配合qt Designer 设计UI子窗口并直接调用UI文件

Pyside2配合qt Designer 设计UI子窗口

Pyside2配合qt Designer 设计UI子窗口

子窗口的设计大部分都是代码实现的 但是我等小白对代码实在是不慎精通,命令行控制python用了很久也挺好用的 ,想要设计点大型的或者功能分散的功能用命令实在是有点坑,所以萌生了写一个UI的想法,想来想去好像QT比较不错 研究研究吧 对于Qt设计师的教程一直不是很多,所以找了很多资料也踩了很多的坑,在这里记录一下,方便以后查阅,其实用代码实现的话也不难 但是既然有了设计师就用来看看

主要是利用按钮来实现子窗口切换的功能 ,用到的组件 stackedWidget(主要是这个)
成品是这样的

下面是步骤
在这里插入图片描述
创建一个Main Windows,
在这里插入图片描述

扔三个按钮
在这里插入图片描述
在扔一个stackedWidget控件
在这里插入图片描述
扔个Lable标签标记一下 然后点上面的右上角的三角号切换到下一页
在这里插入图片描述
因为设计师默认只带了2个标签 所以第三个需要向后插入一页

在这里插入图片描述
三个页面搞定了
在这里插入图片描述
点page,page_2 ,page_3看看下面的currentIndex的值 这个就是对应的“页码”,可能叫索引吧
保存到python代码的工程目录下
名字随便 我就叫main.ui了
下面就需要代码搞定了 如果是List View控件做不用代码也能搞定翻页效果。那玩意默认传递有索引参数 只需要在qt设计师里面设置信号和槽就能实现切换了,但是按钮找了半天没找到合适的方法 只能代码实现了

from PySide2.QtWidgets import QApplication, QMessageBox
from PySide2.QtUiTools import QUiLoader

class Stats:

    def __init__(self):
        # 从文件中加载UI定义

        # 从 UI 定义中动态 创建一个相应的窗口对象
        # 注意:里面的控件对象也成为窗口对象的属性了
        # 比如 self.ui.button , self.ui.textEdit
        self.ui = QUiLoader().load('main.ui')
        self.ui.pushButton.clicked.connect(lambda: self.but_status(self.ui.pushButton))    #对应设计师里面的按钮变量
        self.ui.pushButton_2.clicked.connect(lambda: self.but_status(self.ui.pushButton_2))
        self.ui.pushButton_3.clicked.connect(lambda: self.but_status(self.ui.pushButton_3))

    def but_status(self,btn):
        a = btn.text()
        if a == '界面一':   #对应按钮的文本名字
            self.ui.stackedWidget.setCurrentIndex(0)
        if a == '界面二':
            print(a)
            self.ui.stackedWidget.setCurrentIndex(1)
        if a == '界面3':
            print(a)
            self.ui.stackedWidget.setCurrentIndex(2)

app = QApplication([])
stats = Stats()
stats.ui.show()
app.exec_()

直接导入UI文件 所以没有了代码提示功能 就这样吧,调用跟转换成py也差不多

就到这了

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您提供一些关于使用 PySide2 和 Qt Designer 设计 Python 用户登录界面的指导。 首先,您需要安装 PySide2 库和 Qt Designer 工具。可以通过 pip 安装 PySide2,命令如下: ``` pip install PySide2 ``` Qt DesignerQt 开发工具包中的一个可视化界面设计工具,您可以从 Qt 官网下载并安装。 在 Qt Designer设计登录界面后,您需要将 .ui 文件转换为 .py 文件PySide2 提供了一个名为 pyside2-uic 的工具来完成这个转换过程。您可以在终端中使用以下命令将 .ui 文件转换为 .py 文件: ``` pyside2-uic input.ui -o output.py ``` 在 Python 代码中,您需要导入 PySide2 库和转换后的 .py 文件,然后创建登录界面并显示它。以下是一个简单的示例代码: ```python import sys from PySide2.QtWidgets import QApplication, QDialog from output import Ui_LoginDialog class LoginDialog(QDialog, Ui_LoginDialog): def __init__(self): super().__init__() self.setupUi(self) if __name__ == '__main__': app = QApplication(sys.argv) login_dialog = LoginDialog() login_dialog.show() sys.exit(app.exec_()) ``` 在这个示例中,我们导入了 PySide2 库和转换后的 .py 文件,并创建了一个名为 LoginDialog 的 QDialog 类。我们还在 LoginDialog 类的构造函数中调用了 setupUi() 方法,该方法由 pyside2-uic 工具生成,用于将 .ui 文件中的部件添加到 QDialog 中。 最后,我们创建了一个 QApplication 实例、一个 LoginDialog 实例,并显示了登录界面。最后,我们调用 app.exec_() 方法进入 Qt 事件循环,等待用户与登录界面交互。 希望这些信息可以帮助您开始设计 Python 用户登录界面!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值