PyQt学习笔记(2)——Dumb Dialogs

46 篇文章 0 订阅

对话框在GUI编程中是比较重要的控件,这里按照对话框的“智能”水平,把对话框分为”Dumb Dialogs,Standard Dialogs,Smart Dialogs”三种。

首先是Dumb Dialogs。也就是比较傻瓜式的对话框,看一个例子:

我们要设计一个简单的字体设置对话框,要求可选择字体,和设置字体大小。

程序如下:font.py

#!/usr/bin/env python

#coding=utf-8

 

import sys

from PyQt4.QtCore import *

from PyQt4.QtGui import *

 

class FontPropertiesDlg(QDialog):

    #初始化

    def __init__(self, parent=None):

       #super函数完成对话框的初始化

        super(FontPropertiesDlg, self).__init__(parent)

        FontStyleLabel = QLabel(u"中文字体:")

        FontstyleComboBox = QComboBox()

        FontstyleComboBox.addItems([u"宋体", u"黑体", u"仿宋",

                                     u"隶书", u"楷体"])

        FontSizeLabel = QLabel(u"字体大小")

        FontSizeSpinBox = QSpinBox()

        FontSizeSpinBox.setRange(0, 90)

FontEffectCheckBox =QCheckBox(u"使用特效")

        okButton = QPushButton(u"确定")

        cancelButton = QPushButton(u"取消")

       #确定控件的布局

        buttonLayout = QHBoxLayout()

        buttonLayout.addStretch()

        buttonLayout.addWidget(okButton)

        buttonLayout.addWidget(cancelButton)

        layout = QGridLayout()

        layout.addWidget(FontStyleLabel, 0, 0)

        layout.addWidget(FontstyleComboBox, 0, 1)

        layout.addWidget(FontSizeLabel, 1, 0)

        layout.addWidget(FontSizeSpinBox, 1, 1)

layout.addWidget(FontEffectCheckBox,1,2)

        layout.addLayout(buttonLayout, 2, 0,1,3)

        self.setLayout(layout)

       #窗口的标题

        self.setWindowTitle(u"字体")

 

app = QApplication(sys.argv)

font= FontPropertiesDlg()

font.show()

app.exec_()


 

结果如下:

PyQt学习笔记(2)鈥斺擠umb <wbr>Dialogs

程序的内容就是创建一个对话框的窗体,其中创建了一些控件,然后通过layout方法来在窗体上布局这些控件,最后是创建应用和消息循环。下面看看layout是如何布局的。

这里用到了两个layout一个是buttonlayout,一个layout,其中的buttonlayout是放到了layout上。

buttonLayout = QHBoxLayout()

buttonLayout.addStretch()

 buttonLayout.addWidget(okButton)

 buttonLayout.addWidget(cancelButton)

button是水平放置的,QHBoxLayout,而且用到了Stretch,也就是说这里的确定和取消按钮虽然是水平放置的,但是由于stretch的作用,两个按钮会靠右放置,而且随着窗口大小的改变,也是靠右边的,如上图。(如果把上面第二句去掉的话,两个按钮的显示就变了,左右平局分布)。

 http://blog.sina.com.cn/s/blog_4b5039210100gxw6.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值