python-分享篇-GUI界面开发-PyQt GUI

news/2024/10/19 3:26:42/

文章目录

  • PyQt GUI
  • 编写你的第一个PyQt GUI程序
    • 面向对象方式实现PyQt GUI程序
    • 在窗口中添加控件
    • 信号与槽机制
    • 鼠标事件
    • 键盘事件

PyQt GUI

编写你的第一个PyQt GUI程序

import sys
from PyQt5.QtWidgets import QApplication, QWidget
app = QApplication(sys.argv) # 创建应用程序对象
window = QWidget()
window.resize(400, 300) # 设置窗口的大小
window.move(600, 300) # 设置窗口的位置
window.setWindowTitle(‘你好Qt!’) # 设置窗口标题
window.show() # 显示窗口
app.exec_() # 让应用程序进入主事件循环中

# coding=utf-8
# 代码文件:code/chapter3/3.2.3.py
# 编写你的第一个PyQt GUI程序
import sys
from PyQt5.QtWidgets import QApplication, QWidgetapp = QApplication(sys.argv)                      # 创建应用程序对象window = QWidget()
window.resize(400, 300)                           # 设置窗口的大小
window.move(600, 300)                             # 设置窗口的位置window.setWindowTitle('你好Qt!')                  # 设置窗口标题
window.show()  # 显示窗口app.exec_()    # 让应用程序进入主事件循环中

在这里插入图片描述

面向对象方式实现PyQt GUI程序

# coding=utf-8
# 代码文件:code/chapter3/3.2.4.py
# 面向对象方式实现PyQt GUI程序import sys
from PyQt5.QtWidgets import QApplication, QWidgetclass MyWindow(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.resize(400, 300)               # 设置整窗口的大小self.move(600, 300)                 # 设置窗口的位置,self.setWindowTitle('你好Qt!')       # 设置窗口标题def main():app = QApplication(sys.argv)             # 创建应用程序对象window = MyWindow()window.show()                            # 显示窗口app.exec_()if __name__ == '__main__':main()

在这里插入图片描述

在窗口中添加控件

# coding=utf-8
# 代码文件:code/chapter3/3.3.py
# 在窗口中添加控件import sys
from PyQt5.QtWidgets import *class MyWindow(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.resize(400, 300)                       # 设置整窗口的大小self.move(600, 300)                         # 设置窗口的位置self.setWindowTitle('添加控件!')            # 设置窗口标题label = QLabel(self)                        # 创建标签控件label.setText("Hello World!")               # 设置标签显示的文字label.move(180, 120)                        # 设置标签位置button = QPushButton(self)                  # 创建按钮控件button.setText("OK")                        # 设置按钮上显示的文字button.move(170, 160)                       # 设置按钮位置def main():app = QApplication(sys.argv)                    # 创建应用程序对象window = MyWindow()window.show()                                   # 显示窗口sys.exit(app.exec_())if __name__ == '__main__':main()

在这里插入图片描述

信号与槽机制

# coding=utf-8
# 代码文件:code/chapter3/3.4.1.py
#  信号与槽机制import sys
from PyQt5.QtWidgets import *class MyWindow(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.resize(400, 300)self.move(600, 300)  #self.setWindowTitle('信号与槽机制')self.label = QLabel(self)self.label.setText("Hello World!")self.label.move(180, 120)button = QPushButton("OK", self)button.clicked.connect(self.click_success)  # 连接信号与槽button.move(170, 160)def click_success(self):                        # 槽函数self.label.setText("世界你好!")def main():app = QApplication(sys.argv)window = MyWindow()window.show()sys.exit(app.exec_())if __name__ == '__main__':main()

在这里插入图片描述

鼠标事件

# coding=utf-8
# 代码文件:code/chapter3/3.4.2.3.py
#  鼠标事件import sysfrom PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QLabelclass MyWindow(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.resize(400, 300)self.move(600, 300)self.setWindowTitle('鼠标事件')self.label = QLabel(self)self.label.setText("Hello World!")self.label.move(180, 120)# 重写鼠标按下函数def mousePressEvent(self, event):if event.button() == Qt.LeftButton:self.label.setText("鼠标左键按下")elif event.button() == Qt.RightButton:self.label.setText("鼠标右键按下")else:self.label.setText("鼠标未知按下")# 重写鼠标释放函数def mouseReleaseEvent(self, event):self.label.setText("鼠标释放")def main():app = QApplication(sys.argv)window = MyWindow()window.show()sys.exit(app.exec_())if __name__ == '__main__':main()

在这里插入图片描述

键盘事件

# coding=utf-8
# 代码文件:code/chapter3/3.4.3.py
#  键盘事件import sysfrom PyQt5.QtWidgets import QApplication, QWidget, QLabelclass MyWindow(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.resize(400, 300)self.move(600, 300)self.setWindowTitle('键盘事件')self.label = QLabel(self)self.label.setText("Hello World!")self.label.move(100, 120)# 重写键盘按下函数def keyPressEvent(self, event):self.label.setText("键盘键按下")# 重写键盘释放函数def keyReleaseEvent(self, event):self.label.setText("键盘键释放")def main():app = QApplication(sys.argv)window = MyWindow()window.show()sys.exit(app.exec_())if __name__ == '__main__':main()

在这里插入图片描述


http://www.ppmy.cn/news/1342409.html

相关文章

STM32F407移植OpenHarmony笔记9

继上一篇笔记,已经完成liteos内核的基本功能适配。 今天尝试启动OHOS和XTS兼容性测试。 如何启动OHOS? OHOS系统初始化接口是OHOS_SystemInit(void),在内核初始化完成后,就能调用。 extern void OHOS_SystemInit(void); OHOS_Sys…

云服务器总结

1.服务器重装系后远程连接报错 Host key for xxx.xxx.xxx.xxx has changed and you have requested strict checking. 问题原因 ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不…

【数位dp】【动态规划】【KMP】1397. 找到所有好字符串

作者推荐 【动态规划】【字符串】【表达式】2019. 解出数学表达式的学生分数 本文涉及知识点 动态规划汇总 LeetCode1397. 找到所有好字符串 给你两个长度为 n 的字符串 s1 和 s2 ,以及一个字符串 evil 。请你返回 好字符串 的数目。 好字符串 的定义为&#x…

蓝桥杯每日一题-----数位dp

前言 今天浅谈一下数位dp的板子,我最初接触到数位dp的时候,感觉数位dp老难了,一直不敢写,最近重新看了一些数位dp,发现没有想象中那么难,把板子搞会了,变通也会变的灵活的多! 引入…

Rust 第一个rust程序Hello Rust️

文章目录 前言一、vscode 安装rust相关插件二、Cargo New三、vscode调试rustLLDB 前言 Rust学习系列。今天就让我们掌握第一个rust程序。Hello Rust 🦀️。 在上一篇文章我们在macOS成功安装了rust。 一、vscode 安装rust相关插件 以下是一些常用的 Rust 开发插件…

2024 高级前端面试题之 前端工程相关 「精选篇」

该内容主要整理关于 前端工程相关模块的相关面试题,其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。 前端工程相关模块精选篇 1. webpack的基本配置2. webpack高级配置3. webpack性能优化-构建速度4. webpack性能优化-产出代码(线上运行&am…

[c++]多态的原理

引言 OOP的核心思想是多态性。多态性这个词源自希腊语,其含义是“多种形式”。我们把具有继承关系的多个类型称为多态类型,因为我们能使用这些类型的“多种形式”而无须在意它们的差异。引用或指针的静态类型与动态类型不同这一事实正是C语言支持多态性的…

opencvb 十七 使用cmake配置opencv c++项目

1、cmake简介 1.1 cmake是什么 CMake是一个开源、跨平台的编译(Build)工具,是用来构建、测试和打包软件的。它能够用简单的语句来描述所有平台的编译过程。它能够输出各种各样的makefile或者project文件,能测试编译器所支持的C特…