在PyQt5中 , 窗口类型有QWidget、QMainWindow和QDialog三类 , 它们都是用来创建窗口的 , 可以直接实例化使用 , 也可以继承后使用 。
如果确定是主窗口 , 就使用QMainWindow类 , 如果是对话框 , 就使用QDialog类 , 如果不确定 , 否则使用QWidget类 。
基本窗口
QWidget类是UI对象的基类 , 窗口和控件(如按钮)都直接或间接继承自QWidget类 。窗口是指程序的整体界面 , 可以包含标题栏、菜单栏、工具栏、关闭按钮、最小化按钮等 。一个程序可以有多个窗口 , 一个窗口可以有多个控件 。QWidget对象的常用方法如下:
描述
setWindowState()
调整窗口启动时的状态 。WindowMinimized窗口最小化、WindowMaximized窗口最大化 , WindowFullScreen全屏显示;
showFullScreen()
全屏显示窗口 , 用isFullScreen()方法可判断是否全屏;
showMaximized()
最大化显示窗口 , 用isMaximized()可判断是否最大化窗口;
showMinimized()
最小化显示窗口 , 用isMinimized()可判断是否最小化;
resize(width,heigth)
调整窗口大小 , width是宽度 , heigth是高度 , 可拖拉改变大小;
setFixedSize(int width,int height)
调整窗口大小 , 不可拖拉改变大小;
setGeometry(int x, int y, int width, int height)
同时改变窗口大小和位置,x、y为坐标值 , width为宽度 , height为高度;
frameGeometry()
获得窗口的大小和位置;
move(int x,int y)
移动窗口的位置到x、y坐标;
pos()
获得窗口左上角的坐标;
setStyleSheet()
用QSS调整控件的样式 。QSS称为Qt Style Sheets也就是Qt样式表 , 它是Qt提供的一种用来自定义控件外观的机制 。QSS参考了CSS的内容 , 只不过QSS的功能要比CSS弱很多 。QSS的语法规则几乎与CSS相同 。不知CSS的 , 请自行上网查询并学习一下 , 如果实在不想学 , 那就用QPalette好了;
setPalette()
用QPalette调整控件的样式 。设置背景图片时 , 需要考虑背景图片的尺寸 , 当背景图片的宽度和高度大于窗口的宽度和高度时 , 背景图片将会平铺整个窗口;当背景图片的宽度和高度小于窗口的宽度和高度时 , 则加载多个背景图片 。用QPalette调整控件的样式 。如果有父窗口 , 需要调用self.setAutoFillBa
ckground(True)方法 , 同时不要用到self.setStyleSheet(''”) , 否则self.setPalette()没有作用 。
setWindowFlags()
用于调整窗口样式 , 值为FramelessWindowHint时 , 为没有边框的窗口;
CustomizeWindowHint用|符合和如下属性搭配使用 。
描述
MSWindowsFixedSizeDialogHint
无边框 , 不可拖动 , 也不可调整窗口大小;
WindowTitleHint
有边框和一个标题栏;
WindowSystemMenuHint
无边框 , 不可拖动 , 也不可调整窗口大小;
WindowMaximizeButtonHint
激活最大化 , 禁用最小化和关闭按钮;
激活最小化 , 禁用最大化按钮和关闭按钮;
WindowCloseButtonHint
【pyqt5 窗口操作】激活关闭 , 禁用最大化和最小化按钮;
WindowMinMaxButtonsHint
激活最大化、最小化按钮 , 禁用关闭按钮;
WindowStaysOnTopHint
窗口始终处于顶层位置;
WindowStaysOnBottomHint
窗口始终处于底层位置 。
程序清单:widget.py
import sysfrom PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidgetfrom PyQt5.QtCore import Qtfrom PyQt5.QtGui import QColor# 继承QWidgetclass Widget(QWidget): def __init__(self): super().__init__() self.init_ui() def init_ui(self): # 调整窗口大小 self.resize(900, 500) # 窗口居中 self.center() # 窗口标题 self.setWindowTitle("窗口定义") # 激活关闭按钮 , 禁用最大化和最小化按钮 self.setWindowFlags(Qt.CustomizeWindowHint | Qt.WindowCloseButtonHint) # 设置背景色为白色 palette = self.palette() palette.setColor(self.backgroundRole(), QColor(255, 255, 255)) self.setPalette(palette) # 显示窗口 self.show() # 实现居中 def center(self): f = self.frameGeometry() c = QDesktopWidget().availableGeometry().center() f.moveCenter(c) self.move(f.topLeft())if __name__ == "__main__": app = QApplication(sys.argv) w = Widget() sys.exit(app.exec_())
运行程序之后 , 弹出的窗口如下:文章插图
一个当了10年技术总监的老家伙 , 分享多年的编程经验 。想学编程的朋友 , 关注我 , 你就赚到了 。我正在分享Python、前端、Java和App方面的干货了 。赶紧来围观啊!!!
推荐阅读
- 变频恒压供水器的操作方法 供水控制方式的选择
- 教你华为最全4种录屏方式 华为手机屏幕录制怎么操作
- 存款证明提前解冻如何操作
- 清洗牛仔裤固色方法 具体需要怎么操作
- 如何做家庭版的松饼 这种做法最好操作
- 股市配资怎么操作
- 华为怎样隐藏应用
- 陌陌天天庄园怎么升级快
- 教你进入电脑bios的操作方法 l430联想bios怎么进入
- 简单2步学会vivo分屏操作 vivo如何分屏所有应用