PyQt5 + PyCharm 笔记2 -- Qt Designer使用

PyQt5 + PyCharm 笔记2 – Qt Designer使用


1、打开Qt Designer

Tools > External Tools > Qt Designer
这里写图片描述


2、新建窗口

选择 Main Window > Creat
这里写图片描述


3、界面布局

左边是控件、中间是窗口、右边是设置界面和控件的属性。通过拖拽控件完成界面布局。
这里写图片描述


4、使用 Qt Designer 设计的界面的两种方法

以登陆窗口为例,虽然很丑。
这里写图片描述

法一:通过 PyUIC 把 .ui 文件转为 .py 文件

1、在 Pycharm 中右击 ui_Login.ui 文件,External Tools > PyUIC,会生成一个同名的 ui_Login.py 文件。
这里写图片描述

2、新建一个使用界面的 Login.py 文件

Login.py

import sys
from PyQt5.QtWidgets import QMainWindow
from ui_Login import Ui_MainWindow

# 设计我们的窗口类
class Login(QMainWindow):

    def __init__(self, parent = None):
        super(Login, self).__init__(parent)

        # 实例化一个我们设计的界面类 Ui_MainWindow 的对象
        self.ui = Ui_MainWindow()
        # 用这个界面装饰我们创建的窗口
        self.ui.setupUi(self)

        # 隐藏lable
        self.ui.la_Print.hide()

        # 通常信号与槽的连接放在__init__函数中
        # 连接槽函数登录按钮
        self.ui.pb_Ok.clicked.connect(self.slotLogin)
        # 连接槽函数退出按钮
        self.ui.pb_Cancle.clicked.connect(self.slotCancle)

    def slotLogin(self):
        if self.ui.le_Name.text() != "admin" or self.ui.le_Passwd.text() != "123456":
            self.ui.la_Print.show()
            self.ui.la_Print.setText("用户名或密码错误!")
        else:
            self.ui.la_Print.setText("正在登陆")
            self.accept()

    def slotCancle(self):
        self.reject()

法二:通过 loadUi 直接使用 .ui 文件

Login2.py

import sys
from PyQt5.QtWidgets import QMainWindow

# 导入loadUi
from PyQt5.uic import loadUi


class Login(QMainWindow):

    def __init__(self, *args):
        super(Login, self).__init__(*args)

        # 在窗口中加载界面
        loadUi('ui_Login.ui', self)

        self.la_Print.hide()
        self.pb_Ok.clicked.connect(self.slotLogin)
        self.pb_Cancle.clicked.connect(self.slotCancle)

    def slotLogin(self):
        if self.le_Name.text() != "admin" or self.le_Passwd.text() != "123456":
            self.la_Print.show()
            self.la_Print.setText("用户名或密码错误!")
        else:
            self.la_Print.show()
            self.la_Print.setText("正确!")
            self.accept()

    def slotCancle(self):
        self.reject()

5、显示界面

main.py

import sys
from PyQt5.QtWidgets import QApplication
import Login

# 实例化一个 App
app = QApplication(sys.argv)

# 实例化一个 窗口
login = Login.Login()

# 显示窗口
login.show()

# 进入主循环
sys.exit(app.exec())

猜你喜欢

转载自blog.csdn.net/wang_jiankun/article/details/80998161
今日推荐