一、程序
from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton, QPlainTextEdit
app = 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_()
运行结果:
二、代码解释
1. QApplication 控件管理
提供了整个图形界面程序的底层管理功能,比如:
初始化、程序入口参数的处理,用户事件(对界面的点击、输入、拖拽)分发给各个对应的控件,等等。
注意:既然QApplication要做如此重要的初始化操作,所以,我们必须在任何界面控件对象创建前,先创建它。
2.QMainWindow、QPlainTextEdit、QPushButton 3个控件类
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()
最后 ,通过下面这行代码进入QApplication的事件处理循环,接收用户的输入事件(),并且分配给相应的对象去处理。
app.exec_()