pyqt5-基本窗口控件

1.QMainWindow

QMainWindow 是应用程序框架 有自己的布局 也可以在布局中添加控件 比如工具栏菜单栏 状态栏等添加到布局管理器中

1.1窗口类型介绍

QMainWindow QWidget QDialog 这三个类都是用来创建窗口的 可以直接使用,也可以继承后再使用
QMainWindow 可以包含菜单栏 工具栏 状态栏 标题栏等 是最常见的窗口形式
QDialog 是对话窗口的基类。对话框主要用来执行短期任务,或者与用户进行互动,它可以是模态的 也可以是非模态的,QDialog 没有菜单栏 工具栏 状态栏等等
使用方面:
    如果是主窗口 就是用QMainWindow 如果是对话窗,就使用QDialog类 如果不确定或者可能作为顶层窗口,也有可能嵌入到其他窗口中,那么就使用QWidget类

1.2创建主窗口

    如果一个窗口包含一个或多个窗口,那么这个窗口就是父窗口,被包含的窗口就是子窗口。没有父窗口的窗口就是顶层窗口,QMainWindow就是一个顶层窗口,它可以包含很多界面元素。
在PyQt中 在主窗口 中会有一个空间占位符来占着中心窗口 可以使用setCentralWidget()来设置中心窗口


QMainWindow 继承自QWidget类 拥有它的所有派生方法和属性
其中比较重要的方法如
+ addToolBar() 添加工具栏
+ centralWidget() 返回窗口中心的一个控件 未设置时返回null
+ menuBar() 返回主窗口的菜单栏
+ setCentralWidget() 设置窗口中心控件
+ setStatusBar() 设置状态栏
+ statusBar() 获得状态栏对象后,调用状态栏对象的showMessage(message,int timeout=0)方法,显示状态栏信息你。其中第一个参数要显示的信息 第二个参数时信息停留的时间 单位是毫秒默认是0 表示一直显示状态栏信息。

from PyQt5.QtWidgets import QMainWindow,QApplication
from PyQt5.QtGui import QIcon
class MainWindow(QMainWindow):
    def __init__(self,parent=None):
        super(MainWindow,self).__init__(parent)
        self.resize(400,200)

        self.status = self.statusBar()
        self.status.showMessage("这个时状态栏的显示时间是5000",5000)
        self.setWindowTitle("PyQt MainWindow例子")

if __name__ == "__main__":
    import sys
    app  = QApplication(sys.argv)
    app.setWindowIcon(QIcon("./images/b822566318.ico"))
    mywin = MainWindow()
    mywin.show()
    sys.exit(app.exec_())

下面是窗口放在桌面中心的位置

from PyQt5.QtWidgets import QMainWindow,QApplication,QDesktopWidget
import sys
class winform(QMainWindow):
    def __init__(self,parent=None):
        super(winform,self).__init__(parent)
        self.setWindowTitle("主窗口放在屏幕中间例子")
        self.resize(270,270)
        self.center()
    def center(self):
        screen = QDesktopWidget().screenGeometry() #获取屏幕的大小
        size = self.geometry()#获取窗口的大小
        self.move((screen.width()-size.width())/2,(screen.height()-size.height())/2)#移动到指定位置

if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = winform()
    win.show()
    sys.exit(app.exec_())

下面是关闭装主窗口的例子

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

class WinForm(QMainWindow):
    def __init__(self,parent=None):
        super(WinForm,self).__init__(parent)
        self.setWindowTitle("关闭主窗口的例子")
        self.button = QPushButton("关闭窗口按钮")
        self.button.clicked.connect(self.onButtonClick)
        layout = QHBoxLayout()
        layout.addWidget(self.button)
        main_frame  = QWidget()
        main_frame.setLayout(layout)
        self.setCentralWidget(main_frame)
    def onButtonClick(self):
        sender = self.sender()#发送信号的对象
        print(sender.text()+"被按下了")
        qApp = QApplication.instance()
        qApp.quit()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    form = WinForm()
    form.show()
    sys.exit(app.exec_())

2 QWidget

基础窗口控件QWidget类是所有用户界面对象的积累,所有的窗口和空间都直接或间接继承自QWidget类
窗口控件(Widget 简称控件)是在PyQt中建立界面的主要元素。在PyQt中没有嵌入到其他控件中的控件为窗口一般窗口都有边框 标题栏。窗口是指程序的整体界面,可以包含标题栏 菜单栏 工具栏 关闭按钮 最小化按钮 最大化按钮等;控件是指按钮 复选框 文本框 表格 进度条等这些组成的基本元素。一个程序可以有多个窗口,一个窗口也可以有多个控件。

2.1窗口坐标系统

PyQt使用同一的坐标系统来定位窗口控件的位置和大小。如下图所示。

原文地址:https://www.cnblogs.com/simp/p/12302044.html

时间: 2024-10-03 21:41:25

pyqt5-基本窗口控件的相关文章

Delphi 查找标题已知的窗口句柄,遍历窗口控件句柄(转)

Delphi 查找标题已知的窗口句柄,遍历窗口控件句柄(转) 用我的方法来控制其他程序窗体上的窗口控件,必须先了解什么是 回调函数.我的理解是这样的: 回 调函数写出来不是自己的程序去调用的,反而是让其他的东西去调用,比如windows操作系统,比如其他的程序等等之类的.但是什么时候被调用却不知道 了.回调函数一般是按照调用者的要求定义好参数和返回值的类型,你向调用者提供你的回调函数的入口地址,然后调用者有什么事件发生的时候就可以随时按照你 提供的地址调用这个函数通知你,并按照预先规定好的形式传

《Windows程序设计》读书笔九 子窗口控件

第九章 子窗口控件 子窗口可以作为控制屏幕图形显示,响应用户输入,以及在有重要输入事件的时候通知另一窗口. 标准子窗口控件,按钮,复选框,编辑框,列表框,组合框,文本字符串和滚动条. 可以使用CreateWindow来创建子窗口控件,或者在程序的资源脚本里编辑好各种属性. 使用预定义控件不需要再注册相应的子窗口类,这些类已经存在于windows中并且已经有了预定义的名称. 在调用CreateWindow时,只需要使用该名称作为窗口类的参数即可. 在窗口表明直接创建子窗口,所涉及的任务比使用对话框

ExtJs4 笔记(9) Ext.Panel 面板控件、 Ext.window.Window 窗口控件、 Ext.container.Viewport 布局控件 (转 )出处:[Lipan] (http://www.cnblogs.com/lipan/)

本篇讲解三个容器类控件. 一.面板控件 Ext.Panel 一个面板控件包括几个部分,有标题栏.工具栏.正文.按钮区.标题栏位于最上面,工具栏可以在四个位置放置,围绕中间部分正文,按钮区位于最小方.下面介绍几个基本配置项: 1.title:设置面板标题文本. 2.tbar,lbar,rbar,bbar:分别设置上.左.右.下四个部位的工具栏. 3.html,items:前者用来设置正文部分的html,后者设置正文部分的ext控件. 4.buttons:设置按钮区的按钮. 下面看看面板生成代码:

简介子窗口控件(api)

子窗口控件 壹佰软件开发小组  整理编译   回忆第七章的CHECKER程序.这些程序显示了矩形网格.当您在一个矩形中按下鼠标按键时,该程序就画一个x:如果您再按一次鼠标按键,那么x就消失.虽然这个程序的CHECKER1和CHECKER2版本只使用一个主窗口,但CHECKER3版本却为每个矩形使用一个子窗口.这些矩形由一个叫做ChildProc的独立窗口消息处理程序维护. 如果有必要,无论矩形是否被选中,都可以给ChildProc增加一种向其父窗口消息处理程序(WndProc)发送消息的手段.通

qt 窗口控件自动调整大小

/******************************************************************** * qt 窗口控件自动调整大小 * * 在写gui的时候,希望窗口能够自动调整大小,这样就不许要手动调整. * qt creator中就集成了这种方法,在qt中设置即可. * 本文参考链接: * http://www.cnblogs.com/emouse/archive/2013/05/19/3087708.html * * Tony, 2016-5-21,

windows 编程 —— 子窗口 与 子窗口控件

目录: 子窗口与主窗口的交互 子窗口控件 控件1 控件2 子窗口与主窗口的交互 创建窗口要:注册窗口类型 和 创造相应窗口实例 1 //注册窗口类型 2 wndclass.style = CS_HREDRAW | CS_VREDRAW ; 3 wndclass.lpfnWndProc = WndProc ; 4 wndclass.cbClsExtra = 0 ; 5 wndclass.cbWndExtra = 0 ; 6 wndclass.hInstance = hInstance ; 7 wn

第9章 子窗口控件_9.1-9.3按钮类、控件颜色、静态类

(1)子窗口控件:①子窗口,其parent为父窗口句柄:②子窗口状态发生变化时,会处理鼠标和键盘消息,并且通知其父窗口.可分为自定义子窗口控件和标准的子窗口控件(如按钮) (2)子窗口控件的使用场合 ①在对话框里使用最广——有内在机制支持Tab和光标移动键来转移焦点. ②在窗口表面直接使用:没内在机制支持Tab键和光标移动键来移动焦点到另一个控件: 对于自定义的控件,当单击子窗口时,父窗口会得到焦点.但对于标准子窗口控件,单击时会自动获得焦点(估计子窗口过程内部在WM_LBUTTONDOWN中实

如何控制其他程序窗体上的窗口控件

用我的方法来控制其他程序窗体上的窗口控件,必须先了解什么是回调函数.我的理解是这样的:回调函数写出来不是自己的程序去调用的,反而是让其他的东西去调用,比如windows操作系统,比如其他的程序等等之类的.但是什么时候被调用却不知道了.回调函数一般是按照调用者的要求定义好参数和返回值的类型,你向调用者提供你的回调函数的入口地址,然后调用者有什么事件发生的时候就可以随时按照你提供的地址调用这个函数通知你,并按照预先规定好的形式传递参数.所以很多人打比方,说回调函数还真有点像您随身带的BP机:告诉别人

子窗口控件的使用

在对话框中使用控件(control),首先应该熟悉控件的两种定义方式,虽然有时候用不到自己去编写资源脚本,但是控件在定义的时候有许多参数需要根据实际情况附加,我在编写资源脚本的时候,用ResEdit软件编写的时候,当我定义好一些类型属性,去预览代码的时候,好多属性参数和用其他工具编写的属性参数有的是不一样的,当你把在ResEdit上编写的资源脚本代码粘贴到RadASM里面的工程中的资源文件里的时候,总会出现一些错误,这两个软件的有些内容好像有些许的差距,在用ResEdit编写的时候有一些参数在R