python图形化界面设计gui_python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法...

QWidget基本介绍

基础窗口控件QWidget类是所有用户界面对象的基类,所有的窗口或者控件都直接或者间接的继承自QWidget类。

窗口坐标系统

PyQt使用统一的坐标系统来定位窗口控件的位置和大小,具体如下

71720200226180209.png

以屏幕左上角为原点,也就是(0, 0)点,从左向右为x轴正方向,从上向下为y轴正方向,整个屏幕的坐标系统用来定位顶层窗口。

在窗口内部也有自己的坐标系统,该坐标系统以客户区的左上角为原点,从左向右为x轴正方向,从上到下为y轴正方向,在客户区周围有标题栏和边框。

71820200226180209.png

从上图中,可以将这些成员函数分成三类:

QWidget直接提供的成员函数,x(), y()获得整个窗口左上角的坐标,width()和height()返回客户区的宽度和高度。

QWidget的geometry()提供的成员函数,x(),y()返回的是客户区左上角坐标,width(),height()返回客户区宽度和高度。

QWidget的frameGeometry()提供的成员函数,x(),y()返回的是整个窗口左上角的坐标,-width(),height()也是整个对话框的宽度和高度,包括标题栏和边框。

从上图可以看出来,QWidget有两种常见的几何结构

不包含外面各种边框的几何结构(客户区)。

包含各种边框的几何结构。

不包含边框常用函数

改变客户区面积

QWidget.resize(width, height)

获取客户区大小

QWidget.size()

获取客户区的宽度和高度

QWidget.width()

QWidget.height()

设置客户区的宽度和高度(在某些维度上值不可改变)

QWidget.setFixedWidth(int width)

QWidget.setFixedHeight(int height)

QWidget.setFixedSize(int width, int height)

设置窗口的位置(值可以改变)

QWidget.setGeometry(int x, int y, int width, int height)

包含边框常用函数

获取窗口的大小和位置

QWidget.frameGeometry()

设置窗口的位置

QWidget.move(int x, int y)

获取窗口左上角坐标

QWidget.pos()

屏幕坐标系统实例

from PyQt5.QtWidgets import QApplication,QMainWindow,QWidget,QPushButton

import sys

app=QApplication(sys.argv)

#窗口

widget=QWidget()

#按钮继承在窗口中,并实例化

btn=QPushButton(widget)

#按钮命名

btn.setText('button')

#以QWdiget左上角为(0,0)点,按钮移动到坐标处

btn.move(20,20)

#不同的操作系统可能对窗口的最小宽度有规定,若设置宽度小于规定值,则会以规定值进行显示

widget.resize(300,200)

#以屏幕左上角为(0,0)的点,窗口移动到指定坐标处

widget.move(250,200)

widget.setWindowTitle('pyqt坐标系统例子')

widget.show()

#输出窗口的rect(x,y,width,height)

print('QWidget:')

#x,y获取窗口左上角的坐标

print('w.x()=%d' %widget.x())

print('w.y()=%d' %widget.y())

#width,height获取客户区的宽度与高度

print('w.width()=%d' %widget.width())

print('w.height()=%d' %widget.height())

#客户区的大小

print('客户区的大小:%d' %widget.size())

print('QWidget.geometry')

#x,y获取客户区的左上角坐标(包含窗口的标题与边框部分)

print('widget.geometry().x()=%d' %widget.geometry().x())

print('widget.geometry().y()=%d' %widget.geometry().y())

#width,height获取客户区的宽度与高度

print('widget.geometry().width()=%d' %widget.geometry().width())

print('widget.geometry().height()=%d' %widget.geometry().height())

sys.exit(app.exec_())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
服务端: 服务端程序启动之后弹出窗口,管理员输入IP、端口等信息之后点击启动按钮,服务器启动,服务端窗口自动关闭,之后跳转至服务端信息展示界面,包含用户上线提醒,用户发送信息记录展示。 客户端: 客户端程序启动之后,需要弹出登录界面,当用户成功输入昵称、密码、端口、IP等信息(考虑到用户权限问题,本程序在后台默认有固定IP、端口,)用户只需输入昵称、密码(密码用于后期连接数据时用来匹配数据存储的用户信息)。当用户成功输入用户名。昵称、密码等信息客户端登录成功跳转至用户进行端对端的聊天界面。聊天界面大致分为聊天记录展示界面,在线好友信息界面以及用户发送信息处。用户在发送消息处输入想要发送的文本消息,选择在线好友中的好友昵称点击选择好友即可选中您要发给的好友昵称,然后点击发送按钮,即可将消息发送给所选择的好友,同时将信息展示在自己的聊天界面中的聊天记录处 2.2. 功能要求 §2.2.1服务端功能要求: 当管理员输入服务器IP、以及端口等信息之后点击启动按钮之后,服务端正常启动之后,需要保持一直开机状态满足所有用户不论在何时登录之后都能进行与好友之间的聊天交流等,同时服务端还要满足监控用户登录信息,不同用户登录客户端之后,服务器后台能够看到某某客户上线了等提示信息。用于服务端查看好友在线状态同时作为服务器,还要能够监控用户的聊天记录,用于监控用户不能发送一些不利言论,从而将其用户及时作封号处理。阻止其传播一些不健康的言论。 §2.2.2客户端要求: 用户在登录界面输入昵称、密码等信息之后成功登录之后,进行窗口之间的跳转,由登录窗口跳转至进行用户之间的聊天窗口,之前的登录窗口也要随之消失。在聊天窗口之中用户需要根据好友在线信息情况选择自己想要与其进行聊天的对象。用户点击在线好友的昵称点击选择好友即可向该好友发送信息,发送成功之后同时要将其发送的信息以及时间信息展示在自己的窗口之中,同时也要在指定好友的窗口之中有所显示以及时间信息

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值