读Pyqt4教程,带你入门Pyqt4 _005

对话框窗体或对话框是现代GUI应用不可或缺的一部分。dialog定义为两个或多个人之间的交谈。在计算机程序中dialog是一个窗体,用来和程序“交谈”。对话框用来输入数据、修改数据、改变程序设置等等。对话框是用户和计算机程序沟通的重要手段。

QColorDialog

颜色对话框为定制颜色提供一个对话框组件。

#!/usr/bin/python
# -*- coding: utf-8 -*-# colordialog.pyimport sys
from PyQt4 import QtGui
from PyQt4 import QtCoreclass Example(QtGui.QWidget):def __init__(self):super(Example, self).__init__()self.initUI()def initUI(self):color = QtGui.QColor(0, 0, 0)self.button = QtGui.QPushButton('Dialog', self)self.button.setFocusPolicy(QtCore.Qt.NoFocus)self.button.move(20, 20)self.connect(self.button, QtCore.SIGNAL('clicked()'),self.showDialog)self.setFocus()self.widget = QtGui.QWidget(self)self.widget.setStyleSheet("QWidget { background-color: %s }"% color.name())self.widget.setGeometry(130, 22, 100, 100)self.setWindowTitle('ColorDialog')self.setGeometry(300, 300, 250, 180)def showDialog(self):col = QtGui.QColorDialog.getColor()if col.isValid():self.widget.setStyleSheet("QWidget { background-color: %s }"% col.name())if __name__ == '__main__':app = QtGui.QApplication(sys.argv)ex = Example()ex.show()app.exec_()

该例子显示一个按钮和一个 QWidge 对象。组件的背景设为黑色,我们可以用 QColorDialog 来改变它的背景。

color = QtGui.QColorDialog.getColor()

这行代码将会弹出一个 QColorDialog

if col.isValid():self.widget.setStyleSheet("QWidget { background-color: %s }"% col.name())

检查颜色是否有效,如果点击了取消按钮,将返回无效的颜色。如果颜色有些,我们使用样式修改背景颜色。

QFontDialog

QFontDialog 是一个用来选择字体的对话框组件。

#!/usr/bin/python
# -*- coding: utf-8 -*-# fontdialog.pyimport sys
from PyQt4 import QtGui
from PyQt4 import QtCoreclass Example(QtGui.QWidget):def __init__(self):super(Example, self).__init__()self.initUI()def initUI(self):hbox = QtGui.QHBoxLayout()button = QtGui.QPushButton('Dialog', self)button.setFocusPolicy(QtCore.Qt.NoFocus)button.move(20, 20)hbox.addWidget(button)self.connect(button, QtCore.SIGNAL('clicked()'), self.showDialog)self.label = QtGui.QLabel('Knowledge only matters', self)self.label.move(130, 20)hbox.addWidget(self.label, 1)self.setLayout(hbox)self.setWindowTitle('FontDialog')self.setGeometry(300, 300, 250, 110)def showDialog(self):font, ok = QtGui.QFontDialog.getFont()if ok:self.label.setFont(font)if __name__ == '__main__':app = QtGui.QApplication(sys.argv)ex = Example()ex.show()app.exec_()

该例子中,我们有一个按钮和一个标签。我们用 QFontDialog 改变标签的字体。

hbox.addWidget(self.label, 1)

我们把标签加入到水平框布局中。设置延展因素为1,当我们选择不同的字体时,文字可能变得更大。否则标签可能显示不完全。

if ok:self.label.setFont(font)

如果点击确定,标签的字体将会改变。

QFileDialog

QFileDialog 允许用户选择文件或文件夹,可选择文件来打开和保存。

#!/usr/bin/python
# -*- coding: utf-8 -*-# openfiledialog.pyimport sys
from PyQt4 import QtGui
from PyQt4 import QtCoreclass Example(QtGui.QMainWindow):def __init__(self):super(Example, self).__init__()self.initUI()def initUI(self):self.textEdit = QtGui.QTextEdit()self.setCentralWidget(self.textEdit)self.statusBar()self.setFocus()openFile = QtGui.QAction(QtGui.QIcon('open.png'), 'Open', self)openFile.setShortcut('Ctrl+O')openFile.setStatusTip('Open new File')self.connect(openFile, QtCore.SIGNAL('triggered()'), self.showDialog)menubar = self.menuBar()fileMenu = menubar.addMenu('&File')fileMenu.addAction(openFile)self.setGeometry(300, 300, 350, 300)self.setWindowTitle('OpenFile')def showDialog(self):filename = QtGui.QFileDialog.getOpenFileName(self, 'Open file','/home')fname = open(filename)data = fname.read()self.textEdit.setText(data)app = QtGui.QApplication(sys.argv)
ex = Example()
ex.show()
app.exec_()

这个例子显示一个菜单,中间放置一个文本编辑框,还有一个状态栏。状态机仅为了设计目的显示。菜单项显示 QFileDialog 来选择文件,文件的内容加载进文本编辑器。

class Example(QtGui.QMainWindow):def __init__(self):super(Example, self).__init__()

这个例子建立在 QMainWindow 组件上,因为我们需要在中间设置文本编辑器。

fname = open(filename)
data = fname.read()
self.textEdit.setText(data)

读取选择的文件,并把文件内容放入文本编辑器。

fname = open(filename)
data = fname.read()
self.textEdit.setText(data)

读取选择的文件,并把文件内容放入文本编辑器。

PyQt4教程这的部分我们致力于布局管理。

 

 

本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 ) 
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4528239.html

 

 

转载于:https://www.cnblogs.com/superdo/p/4528239.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux内核的启动过程分析

秦鼎涛 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000  一、实验目的及要求: 使用gdb跟踪调试内核从start_kernel到init进程启动 详细分析从start_kernel到init进程启动的过程并结合实验截图撰写一篇署名博客,并在博客文…

四则运算2+psp0

程序要求: 1.题目避免重复 2.可定制(数量\打印方式) 3.可以一下控制参数 ① 是否有乘除法 ② 是否有括号(最多支持十个数参与运算) ③ 数值范围 ④加减有无负数 ⑤除法有无余数 分析:① 如果是两个数…

浅析Kerberos原理,及其应用和管理

文章作者:luxianghao 文章来源:http://www.cnblogs.com/luxianghao/p/5269739.html 转载请注明,谢谢合作。 免责声明:文章内容仅代表个人观点,如有不当,欢迎指正。 --- 一,引言 Kerberos简单来…

asp.net 导出Excel

asp.net 导出Excel 分享一个asp.net 导出假Excel代码。优点,不用借助于任何插件比如(NPOI),复制代码,修改grid.DataSource直接导出。 先看导出后的效果图 1 System.Web.UI.WebControls.DataGrid grid new DataGrid();2 …

bzoj 2300 动态维护上凸壳(不支持删除)

新技能GET。 用set保存点,然后只需要找前趋和后继就可以动态维护了。 1 /**************************************************************2 Problem: 23003 User: idy0024 Language: C5 Result: Accepted6 Time:556 ms7 Memory:4824 kb8 …

《Linux内核分析》 第四节 扒开系统调用的三层皮(上)

黄胤凯 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、视频学习 1.系统调用的三层皮:xyz system_call sys_xyz 对应的是API,中断向量对应的中断服务程序,系统调用服务程…

OllyDBG反汇编快速找到程序入口一点分析

出处:http://hi.baidu.com/0soul/blog/item/b62f8f08c2c3c42c6b60fbbe.html 先声明下:这个和脱壳没关系,不是找壳里面的程序入口哦,只是程序本身的入口,个别朋友不要误会哈。其实这个应该是基础,但我经常找…

PHP计划任务之关闭浏览器后仍然继续执行的函数

函数名称:ignore_user_abort 本函数配置或取得使用端连接中断后,PHP 程序是否仍继续执行。默认值为中断连接后就停止执行。在 PHP 配置文件中 (php3.ini/php.ini) 的 ignore_user_abort 选项就是配置处。本功能在 PHP 3.0.7 版之后才开始提供。 官方说明…

记对一个key file crackme的破解

crackme下载地址: http://kssd.pediy.com/tutorial/exercise/section04/chap6-1-4-03.zip ------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------…

Chrome/Chromium HTML5 video 视频播放硬件加速

Chromium站点上有个大致的框图。描写叙述了Chromium的video在各个平台 - 包含Android - 上是怎样使用硬件资源来做视频编解码加速的: 而依据Android Kitkat上的Chromium代码分析,HTML5 video播放硬件加速,终于是使用MediaCodec.java来利用本地…

.net mvc结合微软提供的FormsAuthenticationTicket登陆

一、Web.config <system.web><compilation debug"true" targetFramework"4.5" /><httpRuntime targetFramework"4.5" /><authentication mode"Forms"><forms loginUrl"/Sign/SignIn" defaultUrl…

JS 操作 radio input(cc问卷管理)

1、选中特定的单选按钮 function showDetail(content){$("input[name^radio]").removeAttr("checked");for(var i0;i<content.length;i){$("#radio"(i1)content.substr(i,1)).attr("checked","checked");} }2、手动添加问…

Apache Lucene拼写检查器的“您是不是要”功能

Google的“您是不是要”功能 在上一篇文章中对Lucene进行了介绍之后 &#xff0c;现在是时候提高它&#xff0c;创建一个更复杂的应用程序了。 您肯定最熟悉Google的“您是不是要”功能&#xff08;其他搜索引擎也支持此功能&#xff09;。 这是一个例子&#xff1a; Lucene …

Android-做个性化的进度条

1.案例效果图 2.准备素材 progress1.png(78*78) progress2.png(78*78) 3.原理 采用一张图片作为ProgressBar的背景图片(一般采用颜色比较浅的)。另一张是进度条的图片(一般采用颜色比较深的图片)。进度在滚动时&#xff1a;进度图片逐步显示&#xff0c;背景图片逐…

(笔试题)二进制1的个数相同的距离最小数

题目&#xff1a; 输入&#xff1a;整数A输出&#xff1a;整数B条件&#xff1a;A和B的二进制1的个数相同&#xff0c;且A和B之间的距离|A-B|最小。思路&#xff1a; 题目没有说明整数类型&#xff0c;这里认为是带符号的整数&#xff0c;即区分正负数。 根据题意&#xff0c;A…

hadoop5--mapreduce设计模式

运行结果附图 本节课程主要内容为学习MapReduc设计模式&#xff0c;并编写java程序对日志文件进行处理。 课本上介绍的MapReduce的设计模式主要包含:计数(Counting),分类(Classification),过滤处理(Filtering),排序(Sorting),去重计数(Distinct Counting),相关计数(Cross-Corre…

jqGrid,REST,AJAX和Spring MVC集成

两年多以前&#xff0c;我写了一篇关于两个如何在Struts2中实现优雅的CRUD的文章。 实际上&#xff0c;我必须就该主题写两篇文章&#xff0c;因为该主题如此广泛。 今天&#xff0c;我采用了一套更为流行的&#xff0c;完善的框架和库&#xff0c;采用了更为轻量级的现代方法。…

Java-马士兵设计模式学习笔记-代理模式--动态代理 修改成可以代理任意接口

一、概述 1.目标&#xff1a;把Proxy修改成可以代理任意接口及其任意方法 2.思路&#xff1a; (1)代理任意接口&#xff1a;把接口类型作为参数传给Proxy的newProxyInstance(Class interfze) (2)代理任意方法&#xff1a;用interfze.getMethods()取出所有方法&#xff0c;拼接实…

C语言5-7习题

本题要求实现一个函数&#xff0c;用下列公式求cos(x)的近似值&#xff0c;精确到最后一项的绝对值小于e&#xff1a; #include <stdio.h> #include <math.h>double funcos( double e, double x );int main() { double e, x;scanf("%lf %lf", &…