*PyQt4 精彩实例分析* 实例14 分割窗口

QT 同时被 2 个专栏收录
46 篇文章 0 订阅
342 篇文章 0 订阅

分割窗口是应用程序中经常用到的,它可以灵活分布窗口的布局,经常用于类似文件资源管理器的窗口设计中。本实例实现一个分割窗口使用的例子,实现的效果图如下。

整个对话框由3个窗口组成,各个窗口之间的大小可随意拖动改变。此实例使用QSplitter类来实现,实现代码如下所示:


# -*- coding: utf-8 -*-
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys

QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8"))

class MainWidget(QMainWindow):
    def __init__(self,parent=None):
        super(MainWidget,self).__init__(parent)
        font=QFont(self.tr("黑体"),12)
        QApplication.setFont(font)

        mainSplitter=QSplitter(Qt.Horizontal,self)
        leftText=QTextEdit(self.tr("左窗口"),mainSplitter)
        leftText.setAlignment(Qt.AlignCenter)
        rightSplitter=QSplitter(Qt.Vertical,mainSplitter)
        rightSplitter.setOpaqueResize(False)
        upText=QTextEdit(self.tr("上窗口"),rightSplitter)
        upText.setAlignment(Qt.AlignCenter)
        bottomText=QTextEdit(self.tr("下窗口"),rightSplitter)
        bottomText.setAlignment(Qt.AlignCenter)
        mainSplitter.setStretchFactor(1,1)
        mainSplitter.setWindowTitle(self.tr("分割窗口"))

        self.setCentralWidget(mainSplitter)
                 
app=QApplication(sys.argv)
main=MainWidget()
main.show()
app.exec_()


第11-12行指定显示的字体。

第14行定义一个QSplitter类对象,为主分割窗口,设定此分割窗为水平分割窜。

第15行定义一个QTextEdit类对象,并插入主分割窗口中。

第16行调用setAlignment()方法,设定TextEdit中文字的对齐方式,常用的有以下几种。

Qt.AlignLeft:左对齐。

Qt.AlignRight:右对齐。

Qt.AlignCenter:文字居中(Qt.AlignHCenter为水平居中,Qt.AlignVCenter为垂直居中)。

Qt.AlignUp:文字与顶端对齐。

Qt.AlignBottom:文字与底部对齐。

第17行定义一个右部的分割窗口,定义为垂直分割窗,并以主分割窗口为父窗口。

第18行调用的方法setOpaqueResize(boolean)用由设定分割窗的分割条在拖动时是否为实时更新显示,若设为True则实时更新显示,若设为False则在拖动时只显示一条灰色的精线条,在拖动到位并弹起鼠标后再显示分割条。默认设为True,这和Qt3正好相反,Qt3中默认为False。

第23行setStretchFactor()方法用于设定可伸缩控件,它的第一个参数指定设置的控件序号,控件序号按插入的先后次序从0起依次编号,第二个参数大于0的值表示此控件为可伸缩控件。此实例中设定右部分割窗为可伸缩控件,当整个对话框的宽度发生改变时,左部的文件编辑框宽度保持不变,右部的分割窗宽度随整个对话框大小的改变进行调整。

 

 

注:本文基本上是经过改编的《Linux窗口程序设计--Qt4精彩实例分析》一书的PyQt4 for windows版本

转自:http://blog.csdn.net/chumpklutz/article/details/6073857

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值