# _*_ coding:utf-8 _*_
import sys
from PyQt4 import QtCore,QtGui
class Example(QtGui.QWidget):
def __init__(self):
super(Example,self).__init__()
self.initUI()
def initUI(self):
self.button=QtGui.QPushButton('Dialog',self)
self.button.setFocus()
self.button.move(20,20)
self.connect(self.button,QtCore.SIGNAL('clicked()'),self.showDialog)
self.setFocus()
self.label=QtGui.QLineEdit(self)
self.label.setMaximumWidth(20)
self.label.move(130,22) self.widget=QtGui.QWidget(self)
self.widget.setStyleSheet("QWidget{background-color:red}" ) grid=QtGui.QGridLayout() grid.addWidget(QtGui.QPushButton(u'我是个按钮'),1,1)
grid.addWidget(QtGui.QPushButton(u'我是个按钮'), 0, 0) #self.setLayout(grid)
self.widget.setLayout(grid)
self.widget.move(150,22)
self.resize(100,100)
#self.widget.setGeometry(150, 22, 100, 150)
self.buuton2=QtGui.QPushButton(u'设置背景色',self)
self.connect(self.buuton2,QtCore.SIGNAL('clicked()'),self.changeBackground)
self.buuton2.move(220,22) self.setWindowTitle('InputDialog')
self.setGeometry(300,300,350,80) def showDialog(self):
text,ok=QtGui.QInputDialog.getText(self,'Input Dialog','Enter your name');
if ok:
self.label.setText(str(text))
def changeBackground(self):
col=QtGui.QColorDialog.getColor()
if col.isValid():
self.widget.setStyleSheet("QWidget { background-color: %s }"
% col.name()) def showDialog(self): font, ok = QtGui.QFontDialog.getFont()
if ok:
self.label.setFont(font) 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_()

代码中给出输入对话框和颜色对话框的简单应用,另外两个大同小异,没有实现。这里我探索一下QWidget的复合。即在一个Qwidget中叠加多个Qwidget。

对于它们之间的事件关系我没有研究。这里仅仅关注界面构成:

self.widget=QtGui.QWidget(self)
self.widget.setStyleSheet("QWidget{background-color:red}" ) grid=QtGui.QGridLayout() grid.addWidget(QtGui.QPushButton(u'我是个按钮'),1,1)
grid.addWidget(QtGui.QPushButton(u'我是个按钮'), 0, 0) #self.setLayout(grid)
self.widget.setLayout(grid)
self.widget.move(150,22)

这里我在主窗口里添加了一个widget,同时对这个widget使用QgridLayout进行布局管理。我发现这个widget的大小不受我代码的控制了。应该是布局管理器的规则影响。

这样同理我可以嵌套多个widget,而且通过对grid的删除可以实现选项卡的功能。666

QDialog:输入对话框、颜色对话框、字体对话框、文件对话框的更多相关文章

  1. Java开发笔记(一百三十五)Swing的文件对话框

    除了常规的提示对话框,还有一种对话框也很常见,它叫做文件对话框.文件对话框又分为两小类:打开文件的对话框.保存文件的对话框,但在Swing中它们都用类型JFileChooser来表达.下面是JFile ...

  2. MFC 文件对话框

    文件对话框的分类 文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见到这两种文件对话框.例如,很多编辑软件像记事本等都有"打开"选项,选择" ...

  3. MFC编程入门之十七(对话框:文件对话框)

    上一讲介绍的是消息对话框,本节讲解文件对话框.文件对话框也是很常用的一类对话框. 文件对话框的分类 文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见到这两种文件对话框 ...

  4. 工作总结:文件对话框的分类(C++)

    原文地址:http://www.jizhuomi.com/software/173.html 文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见到这两种文件对话框.例如 ...

  5. VS2010/MFC对话框:文件对话框

    文件对话框 上一讲介绍的是消息对话框,本节讲解文件对话框.文件对话框也是很常用的一类对话框. 文件对话框的分类       文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中 ...

  6. VS2010/MFC编程入门之十七(对话框:文件对话框)

    上一讲鸡啄米介绍的是消息对话框,本节讲解文件对话框.文件对话框也是很常用的一类对话框. 文件对话框的分类       文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见 ...

  7. VS2010-MFC(对话框:文件对话框)

    转自:http://www.jizhuomi.com/software/173.html 一 文件对话框的分类       文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中 ...

  8. C#线程安全打开/保存文件对话框

    在多线程单元模式(MTA)中为应用程序使用.NET OpenFileDialog和SaveFileDialog 下载FileDialogsThreadAppartmentSafe_v1.zip 如果您 ...

  9. 19.QT对话框(文件对话框,颜色对话框,字体框,自定义对话框)

    文件对话框 #include<QFileDialog> //文件对话框 void Dialog::on_pushButton_clicked() { //定义显示文件的类型 窗口标题 可供 ...

  10. QT学习 之 对话框 (四) 字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)

    QMessageBox类: 含有Question消息框.Information消息框.Warning消息框和Critical消息框等 通常有两种方式可以来创建标准消息对话框: 一种是采用“基于属性”的 ...

随机推荐

  1. SettingsMyEclipse

      迁移时间--2017年5月20日10:39:42 Author:Marydon-----------------------------------MyEclipse单独设置项---------- ...

  2. 关于NHibernate中存在于Session中实例的3种状态的简单分析

    在使用NHibernate的时候.在Session中会有3种状态. 1. 瞬时状态 (Transient) 由 new 命令开辟内存空间的对象,也就是平时所熟悉的普通对象. 如: Student st ...

  3. 一些常见http状态码

    # encoding=utf-8 #python 2.7.10 #xiaodeng #http状态码 #HTTP权威指南 10页 #一些常见状态码: 200 OK,文档正确返回 302 重定向,到其他 ...

  4. 【转】MyEclipse 9.0正式版官网下载(附Win+Llinux激活方法、汉化包)

    MyEclipse 9.0 经过 M1,M2,终于出了正式版(MyEclipse For Spring 还是 8.6.1).该版本集成了 Eclipse 3.6.1,支持 HTML5 和 JavaEE ...

  5. cxf之Exception in thread "main" java.lang.NoSuchMethodError: org.apache.cxf.jaxrs.provider.ProviderFactory.<init>(Lorg/apache/cxf/Bus;)V

    pom.xml中关于cxf的配置jar包冲突??? 1.http://blog.csdn.net/yzl_8877/article/details/53216923 2.https://www.cnb ...

  6. HDUOJ --2544最短路(基础)

    输入包括多组数据.每组数据第一行是两个整数N.M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口是赛场所在地,M则表示在成都有几 ...

  7. HDUOJ---1996汉诺塔VI

    汉诺塔VI Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  8. SSL原理

    http://blog.csdn.net/terryzero/article/details/5921791SSL的原理以前一直很模糊,看了下面这篇文章后清楚了许多,为了方便以后的回顾,所以转载下 R ...

  9. ubuntu 安装ssh 服务

    百度地址: http://jingyan.baidu.com/article/00a07f38a5c05482d128dc5f.html

  10. 原生js,插入元素

    function insert(){ var tarDiv = document.getElementById("aId"); var newDiv = document.crea ...