现在我们要开发一个程序,让用户输入一段文本包含:员工姓名、薪资、年龄。

格式如下:

薛蟠 4560 25
薛蝌 4460 25
薛宝钗 35776 23
薛宝琴 14346 18
王夫人 43360 45
王熙凤 24460 25
王子腾 55660 45
王仁 15034 65
尤二姐 5324 24
贾芹 5663 25
贾兰 13443 35
贾芸 4522 25
尤三姐 5905 22
贾珍 54603 35

代码如下:`

from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton,  QPlainTextEditapp = QApplication([])window = QMainWindow()
window.resize(500, 400)
window.move(300, 310)
window.setWindowTitle('薪资统计')textEdit = QPlainTextEdit(window)
textEdit.setPlaceholderText("请输入薪资表")
textEdit.move(10,25)
textEdit.resize(300,350)button = QPushButton('统计', window)
button.move(380,80)window.show()app.exec_()

大家可以运行一下看看。

QApplication 提供了整个图形界面程序的底层管理功能,比如:

初始化、程序入口参数的处理,用户事件(对界面的点击、输入、拖拽)分发给各个对应的控件,等等
既然QApplication要做如此重要的初始化操作,所以,我们必须在任何界面控件对象创建前,先创建它。

QMainWindow、QPlainTextEdit、QPushButton 是3个控件类,分别对应界面的主窗口、文本框、按钮

他们都是控件基类对象QWidget的子类。

要在界面上 创建一个控件 ,就需要在程序代码中 创建 这个 控件对应类 的一个 实例对象。

在 Qt 系统中,控件(widget)是 层层嵌套 的,除了最顶层的控件,其他的控件都有父控件。

QPlainTextEdit、QPushButton 实例化时,都有一个参数window,如下

QPlainTextEdit(window)
QPushButton('统计', window)

就是指定它的父控件对象 是 window 对应的QMainWindow 主窗口。

而 实例化 QMainWindow 主窗口时,却没有指定 父控件, 因为它就是最上层的控件了。

控件对象的 move 方法决定了这个控件显示的位置。

比如

window.move(300, 310) 就决定了 主窗口的 左上角坐标在 相对屏幕的左上角 的X横坐标300像素, Y纵坐标310像素这个位置。

textEdit.move(10,25) 就决定了文本框的 左上角坐标在 相对父窗口的左上角 的X横坐标10像素, Y纵坐标25像素这个位置。

控件对象的 resize 方法决定了这个控件显示的大小。

比如

window.resize(500, 400) 就决定了 主窗口的 宽度为500像素,高度为400像素。

textEdit.resize(300,350) 就决定了文本框的 宽度为300像素,高度为350像素。

放在主窗口的控件,要能全部显示在界面上, 必须加上下面这行代码:

window.show()

最后 ,通过下面这行代码:

app.exec_()

进入QApplication的事件处理循环,接收用户的输入事件(),并且分配给相应的对象去处理。

pyqt5的一个简单案例相关推荐

  1. BaseAdapter的一个简单案例

    BaseAdapter的一个简单案例 主Activity import android.os.Bundle; import android.app.Activity; import android.v ...

  2. 一个简单案例教你如何用Typescript写Vuex

    案例源代码: github.com/danielhuoo/- 前言 相信很多人都像我一样,学习使用了vuex后,想把项目改写成Typescript.但是官方教程要么晦涩难懂,要么缺少鲜活的例子.我花了 ...

  3. PyQt5制作一个简单的登录界面

    最近在学习GUI设计,分享做的一些小项目. 这篇文我们讲一下如何制作一个简单的登录界面. 目录 一.效果图 二.简述制作过程: 三.源码及材料: 1.源码: 2.图片素材: 一.效果图 如下: 二.简 ...

  4. 一个简单案例,带你看懂GC日志!

    环境准备 这样一个案例程序: public class Main {public static void main(String[] args) {byte[] array1 = new byte[4 ...

  5. python用PyQt5实现一个简单的表白软件(代码实现+py文件打包成exe文件)

    1.代码+py文件打包方法 功能说明:除了点击同意按钮外,软件不会关闭,不同意按钮不会被鼠标点击生效,会不断的被鼠标触发移动 2.上代码: 注:使用该程序之前需要安装pyqt5, pip instal ...

  6. 一个简单案例,5 分钟看懂 Java Lamdba 表达式

    JDK8引入了一个新玩意,叫做lamdba(那么大)的表达式,说得神乎其神,说真的,这玩意吧,并不难,但是要讲清楚吧,也不是太容易的事情. 从匿名内部类开始说起 老实交代,直接来讲lamdba表达式还 ...

  7. scrapy框架系列 (2) 一个简单案例

    学习目标 创建一个Scrapy项目 定义提取的结构化数据(Item) 编写爬取网站的 Spider 并提取出结构化数据(Item) 编写 Item Pipelines 来存储提取到的Item(即结构化 ...

  8. 宋宝华:用eBPF/bcc分析系统性能的一个简单案例

    bcc是eBPF的一种前端,当然这个前端特别地简单好用.可以直接在python里面嵌入通过C语言写的BPF程序,并帮忙产生BPF bytecode和load进入kernel挂载kprobe.trace ...

  9. Qt/C++程序防拷贝及限制多次安装的一个简单案例

    前言 最近因项目需求:安装后的程序即使拷贝其他电脑也不使用,安装包只能在一台电脑安装,在此电脑安装后不能在其他电脑安装即使单独拷贝安装包也不能安装.另外就是不使用加密狗或者license key等,而 ...

最新文章

  1. rman实验——测试备份压缩
  2. OpenCASCADE绘制测试线束:拓扑命令之扫掠Sweeping
  3. [JavaScript] 多数前端工程师都没注意到的一个关于console.log()的坑
  4. 大话设计模式读书笔记--6.原型模式
  5. 第六节:教你如何在html中绑定数据
  6. leetcode-Easy-第1期:two sum
  7. 进程调度(一)--linux内核设计与实现读书笔记
  8. 前端框架Vue(3)——vue-cli 目录结构
  9. Linux下一次数据仓库进行迁移记录
  10. (转)智能投顾的中国特色:强需求,大规模,低门槛与巨大提升空间
  11. lisp princ详解_LISP-输入和输出
  12. 服务器数据恢复;IBM V7000数据恢复方法
  13. 怎么用计算机磁盘管理分区,在win 7中如何用磁盘管理为硬盘分区呢?
  14. findContours函数报错:“将一个无效参数传递给了将无效参数视为严重错误的函数”解决方案之一
  15. 什么是聚类以及四种聚类方法的比较
  16. wav 转换到 flac
  17. 【教程】使用 LitJson 处理 Json 数据信息
  18. 计算机主板提示ahci,win7系统amd计算机主板开ahci.docx
  19. 迅雷BT种子制作方法
  20. python中zerodivisionerror是什么意思-python里的raise是什么意思

热门文章

  1. vue3+vant4 vant4主题色配置(简单快捷)
  2. CORS跨域资源共享漏洞靶场演示
  3. 小迪安全第14天 web漏洞,SQL注入之类型及提交注入
  4. 排序——插入排序(Insertion sort)
  5. SpringBoot多环境(dev、test、prod)配置详解
  6. 计算机网络 实验3 单交换机vlan配置
  7. 老年大学计算机培训教材,老年大学摄影教材.pdf
  8. EndPoint学习之路_02:EndPoint产品讲解一指禅
  9. 黑马程序员,黑马论坛----黑马.Net8期,就业率98.61%,平均薪水5722元!
  10. 上海往事之带娃游泳有惊无险