IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 【QtDesigner 开发笔记】在PyCharm中配置 -> 正文阅读

[开发工具]【QtDesigner 开发笔记】在PyCharm中配置

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210403002628150.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_1,color_FFFFFF,t_70)
  • 右边点击编辑,自定义一个槽函数on_Test1()

    在这里插入图片描述

  • 连接信号和槽函数,点击OK

    在这里插入图片描述

  • 重新利用 Pyuic 工具生成界面代码后,在main.py中实现自定义的槽函数on_Test1()


import sys

from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox

from PyQt5.QtCore import pyqtSlot

from mainwindow import Ui_MainWindow



class MainWindow(QMainWindow, Ui_MainWindow):  # 多重继承QMainWindow和Ui_MainWindow

    def __init__(self):

        super(MainWindow, self).__init__()  # 先调用父类QMainWindow的初始化方法

        self.setupUi(self)  # 再调用setupUi方法



    def on_Test1(self):

        QMessageBox.information(self, '提示信息', '按钮1被按下。')



if __name__ == '__main__':

    app = QApplication(sys.argv)

    ui = MainWindow()

    ui.show()

    sys.exit(app.exec_()) 

在这里插入图片描述

方法2:编程实现信号与槽的连接


在界面设计完成后,不需要在QtDesigner中进行操作,直接修改main.py

核心是利用@pyqtSlot()装饰器,实现信号与槽的连接:

  • 导入pyqtSlotfrom PyQt5.QtCore import pyqtSlot

  • @pyqtSlot() 指明后面跟随的方法是一个PyQt5槽函数

  • 方法的命名需要符合PyQt5槽函数的规则:on_控件名称_信号名称()


import sys

from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox

from PyQt5.QtCore import pyqtSlot

from mainwindow import Ui_MainWindow



class MainWindow(QMainWindow, Ui_MainWindow):  # 多重继承QMainWindow和Ui_MainWindow

    def __init__(self):

        super(MainWindow, self).__init__()  # 先调用父类QMainWindow的初始化方法

        self.setupUi(self)  # 再调用setupUi方法



    def on_Test1(self):

        QMessageBox.information(self, '提示信息', '按钮1被按下。')



    @pyqtSlot()  # 装饰器,指明下面的方法是一个PyQt5槽函数,命名需要符合PyQt5槽函数的规则: on_控件名称_信号名称

    def on_btnTest2_clicked(self):

        QMessageBox.information(self, '提示信息', '按钮2被按下。')



if __name__ == '__main__':

    app = QApplication(sys.argv)

    ui = MainWindow()

    ui.show()

    sys.exit(app.exec_()) 

在这里插入图片描述

添加菜单

=======================================================================

在这里插入图片描述

添加一个【系统设置】菜单,并修改名称为:actSysConfig;

添加一个【退出】菜单,并修改名称为:actExit;

通过编程实现信号与槽连接的方法,添加两个槽函数:

  • on_actSysConfig_triggered(self):【系统配置】弹出一个提示性的对话框

  • on_actExit_triggered(slef):【退出】实现退出功能的系统


@pyqtSlot()

def on_actSysConfig_triggered(self):

    QMessageBox.information(self, '提示信息', '系统配置功能。')



@pyqtSlot()

def on_actExit_triggered(self):

    self.close() 

在这里插入图片描述

在这里插入图片描述

使用Tab Widget设计软件界面

=====================================================================================

要达到的效果如下:

在这里插入图片描述

步骤:

  • 拖动 Tab Widget 控件到主界面上

    在这里插入图片描述

  • 对象查看器属性编辑器 中设置对应的属性:

    在这里插入图片描述

  • 使用 垂直布局

    在这里插入图片描述

  • 使用布局后,mainWidget 的父类 centralwidget 的属性编辑器中会多一个 Layout:

    将布局的页边距属性值都设置为0,使得界面看起来更紧凑

    在这里插入图片描述

搭建出股票软件界面

在这里插入图片描述

合理利用 水平布局垂直布局 等功能,即可搭建出工整漂亮的页面

设计子窗口,并在主窗口中打开

=================================================================================

新打开一个Qt Designer,选择 Widget 开始设计子窗口:

在这里插入图片描述

设计一个子窗口,添加一个退出按钮,名称为btnExit,保存为:Ui_sys_config.ui

在这里插入图片描述

使用 Pyuic 工具将Ui_sys_config.ui转为Ui_sys_config.py界面代码

编写 sys_config.py,其中完善 Ui_sys_config 界面的功能:


import sys

from PyQt5.QtWidgets import QApplication, QDialog

from Ui_sys_config import Ui_SysConfig



class SysConfig(QDialog, Ui_SysConfig):

    def __init__(self):

        super(SysConfig, self).__init__()

        self.setupUi(self)

        # 连接btnExit的clicked信号与on_btnExit槽函数

        self.btnExit.clicked.connect(self.on_btnExit)



    def on_btnExit(self):

        self.close()



# 测试代码

if __name__ == '__main__':

    app = QApplication(sys.argv)

    ui = SysConfig()

    ui.show()

    sys.exit(app.exec_()) 

main.py 主界面中,引入上面设计的子界面:

  • 使用 Qt Designer 创建的窗口,也可以使用 connect 方法连接信号与槽函数

  • 下面我们使用@pyqtSlot()解释器来主界面与子界面:

核心代码:


@pyqtSlot()

def on_actSysConfig_triggered(self):

    w = SysConfig()

    w.exec_() 

完整代码:


import sys

from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox

from PyQt5.QtCore import pyqtSlot

from Ui_mainWindow import Ui_MainWindow

from sys_config import SysConfig



class MainWindow(QMainWindow, Ui_MainWindow):  # 多重继承QMainWindow和Ui_MainWindow

    def __init__(self):

        super(MainWindow, self).__init__()  # 先调用父类QMainWindow的初始化方法

        self.setupUi(self)  # 再调用setupUi方法



    @pyqtSlot()

    def on_actSysConfig_triggered(self):

        QMessageBox.information(self, '提示信息', '系统配置功能。')



    @pyqtSlot()

    def on_actExit_triggered(self):

        self.close()



    @pyqtSlot()

    def on_btnTech_clicked(self):

        QMessageBox.information(self, '提示信息', '技术分析按钮被按下。')



  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-08-31 15:39:06  更:2021-08-31 15:40:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/23 0:37:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计