pyqt5 窗口操作
admin
2023-06-17 07:52:08

在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

激活最大化,禁用最小化和关闭按钮;

WindowMinimizeButtonHint

激活最小化,禁用最大化按钮和关闭按钮;

WindowCloseButtonHint

激活关闭,禁用最大化和最小化按钮;

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_())

运行程序之后,弹出的窗口如下:

pyqt5 窗口操作图1

一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我正在分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!

相关内容

热门资讯

苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
怎么样的桃花 桃花近看远看的样... 今年的“三八”妇女节,阳光明媚,踏青赏花正当时。遂与姐妹们共赴十里蓝山,与花海来一场春天的约会。十里...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
怎么样的桃花 桃花近看远看的样... 今年的“三八”妇女节,阳光明媚,踏青赏花正当时。遂与姐妹们共赴十里蓝山,与花海来一场春天的约会。十里...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...