学习pyqt 基础 3

PyQt4 中的布局管理器

布局管理就是我们在窗口中安排不见位置的方法。布局管理有两种工作方式:绝对定位方式和布局类别方式。一般来说,绝对布局方式用的较少,就像网页,现在不都什么流行响应式布局咩

布局类别方式 (layout classes)

使用布局类别方式的布局管理器比绝对定位方式的布局管理器更加灵活实用。它是窗口部件的首先布局管理方式。最基本的布局类别是QHBoxLayout和QVBoxLayout布局管理方式。

class Boxlayout(QtGui.QWidget):
    def __init__(self, parent = None):
        QtGui.QWidget.__init__(self)
        self.setWindowTitle(‘box layout‘)
        ok = QtGui.QPushButton(‘OK‘)
        cancel = QtGui.QPushButton(‘Cancel‘)
        hbox = QtGui.QHBoxLayout()
        hbox.addStretch(1)
        hbox.addWidget(ok)
        hbox.addWidget(cancel)
        vbox = QtGui.QVBoxLayout()
        vbox.addStretch(1)
        vbox.addLayout(hbox)
        self.setLayout(vbox)
        self.resize(300, 150)
  • 代码都比较容易理解,至于vbox.addStretch()这一方法,意思时加入一个伸缩间隔元素(深入须看文档)

网格布局方式

class GridLayout(QtGui.QWidget):
    def __init__(self, parent = None):
        QtGui.QWidget.__init__(self)
        self.setWindowTitle(‘grid layout‘)
        names = [‘Cls‘, ‘Bck‘, ‘‘, ‘Close‘, ‘7‘, ‘8‘, ‘9‘, ‘/‘,
        ‘4‘, ‘5‘, ‘6‘, ‘*‘, ‘1‘, ‘2‘, ‘3‘,
        ‘-‘, ‘0‘, ‘.‘, ‘=‘, ‘+‘]
    grid = QtGui.QGridLayout()
    j = 0
    pos = [(0, 0), (0, 1), (0, 2), (0, 3),
    (1, 0), (1, 1), (1, 2), (1, 3),
    (2, 0), (2, 1), (2, 2), (2, 3),
    (3, 0), (3, 1), (3, 2), (3, 3),
    (4, 0), (4, 1), (4, 2), (4, 3)]
    for i in names:
        button = QtGui.QPushButton(i)
        if j == 2:
            grid.addWidget(QtGui.QLabel(‘‘), 0, 2)
        else:
            grid.addWidget(button, pos[j][0], pos[j][1])
        j = j + 1
    self.setLayout(grid)
  • 感觉代码还是比较好懂,书上也没怎么讲,我也就…

学习pyqt 基础 3,布布扣,bubuko.com

时间: 2024-08-25 09:42:38

学习pyqt 基础 3的相关文章

学习pyqt 基础 实践1

学习pyqt 基础 实践1 代码加截图 学习前面一点Qwidget,QWindow 然后实现了这个界面,并没有相应的处理方法,之后在写相应的处理函数. #! /usr/bin/python # -*- coding:utf8 -*- import sys from PyQt4 import QtCore, QtGui from PyQt4.QtCore import * from PyQt4.QtGui import * class MainWindow(QtGui.QWidget): def

学习pyqt4 基础 2

学习pyqt4 基础 2 回顾 之前有句话这么说:QWidget 部件是PyQt4 中所有用户界面类的父类. 突然想起,在上节中,或许会碰到中文乱码问题,在字符串前面加上u,表示unicode(具体原理也不清楚).解决办法:比如 u'你好'. 在下面的例子中有体现. 主窗口 QMainWindow类用来创建应用程序的主窗口.通过该类,我们可以创建一个包含状态栏,工具栏和菜单栏的经(老)典(套)应用程序框架.(虽老套,但基础还是要尽量牢固) 状态栏 #! /usr/bin/python # -*-

Linux学习 -- Shell基础 -- 概述

Shell是什么? 命令解释器 编程语言 Linux支持的Shell类型 cat /etc/shells 主要学习 bash 脚本执行方式 echo echo -e 单引号 -- 原始字符串  双引号 -- 支持转义字符串 \e[1;31m xxx  开启颜色 \e[0m    关闭颜色 首行:#!/bin/bash #写好注释 执行方式: 方式1 sh xxx.sh 方式2 chmod 755 xxx.sh  ./xxx.sh 或 绝对路径 Linux学习 -- Shell基础 -- 概述

Ant学习-001-ant 基础知识及windows环境配置

一.Ant 概要基础知识 Apache Ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git.TestNG等搭建持续集成测试开发环境,从而高效.高质量的构建产品. Ant 有以下一些优点: 跨平台,可移植.Ant 是 Java 语言编写的,所以有很好的跨平台性和可移植性,无论是在 windows.Linux,还是 mac. 操作简单. Ant 是由一个内置任务和可选任务组成的,运行时需要一个构

Linux学习 -- Shell基础 -- Bash基本功能

历史命令 history -c   clear -w   写入 ~/.bash_history 默认保存1000条, 可在/etc/profile中修改 调用 Tab补全 命令.目录.文件 命令别名 alias 别名='原命令' 命令执行顺序: 绝对路径或相对路径 > 别名 > Bash的内部命令 > $PATH环境变量中找到的第一个命令(外部命令) 配置文件:/root/.bashrc 删除:unalias 别名 常用快捷键 输入输出重定向 标准输入输出 输出重定向 注意:2和>

经典面试题回答——学习Java基础的目的

本系列知识解释:相信每一个学习Java的人都是从JavaSE开始的,也就是Java基础开始.但是却并不清楚学习Java基础到底有什么用? 首先我来回答这个问题,学习Java基础是有两个目的: 一.掌握基本的Java语言底层编码方法,同时掌握Java这门语言的编程思想,为了后期学习JavaEE打下基础,要不然在学习JavaEE的时候,连封装,继承,多态都不懂,那就实在是没法说了(相信在传智播客学习过Java基础的同学,这些都不是问题.) 二.在学习完JavaSE和JavaEE后招工作的时候能够答上

Nio学习3——基础模型:Reactor模式和多路复用

Reactor模式和NIO 本文可看成是对Doug Lea Scalable IO in Java一文的翻译. 当前分布式计算 Web Services盛行天下,这些网络服务的底层都离不开对socket的操作.他们都有一个共同的结构: 1. Read request 2. Decode request 3. Process service 4. Encode reply 5. Send reply 经典的网络服务的设计如下图,在每个线程中完成对数据的处理: 但这种模式在用户负载增加时,性能将下降

hadoop学习笔记——基础知识及安装

1.核心 HDFS  分布式文件系统    主从结构,一个namenoe和多个datanode, 分别对应独立的物理机器 1) NameNode是主服务器,管理文件系统的命名空间和客户端对文件的访问操作.NameNode执行文件系统的命名空间操作,比如打开关闭重命名文件或者目录等,它也负责数据块到具体DataNode的映射 2)集群中的DataNode管理存储的数据.负责处理文件系统客户端的文件读写请求,并在NameNode的统一调度下进行数据块的创建删除和复制工作. 3)NameNode是所有

Swift学习——Swift基础详解(四)

A:小儿编程很不好! B:多半是不爱学,从看英文版开始,让你爱上编程! Type Aliases    类型重定义(typedef) Swift中重定义类型的关键字是typealias,至于怎么用,应该不必多说了,看例子: typealias AudioSample = UInt16 //定义了一个类型名称AudioSample,代表UInt16类型 var maxAmplitudeFound = AudioSample.min // maxAmplitudeFound is now 0 Boo